thinkphp (3.2.3) を使用してデータベースを操作するには、まずデータベースに接続する必要があります。特定のデータベースの構成ファイルを記述する必要があります。thinkphp は構成ファイルに基づいてデータベースに自動的に接続します。モデル ファイルをカスタマイズする必要はありません。組み込みのモデル ファイルで問題を解決できます。設定ファイルはディレクトリ applicationhomeconfconfig.php に書き込まれます:
<?phpreturn array(//'配置项'=>'配置值''DB_TYPE'=> 'mysql',//数据库类型'DB_HOST'=> '127.0.0.1',//服务器地址'DB_NAME'=>'jiu151231',//数据库名称'DB_USER'=>'root',//用户名'DB_PWD'=>'',//密码'DB_PORT'=>'3306',//端口'DB_PREFIX'=>'',//数据库表前缀);
この時点で準備は完了です。その中で、データベーステーブルのプレフィックスについては、デフォルトについてはインターネット上でさまざまな意見がありますが、私のデフォルトは空です。 phpmyadmin を開くと他のプレフィックスが表示されると思います。
CURD オペレーション コードはすべて、コントローラー ファイルである applicationhomecontrollerindexcontroller.class.php ディレクトリにあります。以下はすべて M メソッドを使用してテーブル オブジェクトをインスタンス化します。
C
データの挿入
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $jiu0=M('myguests'); $j0['firstname']='lv'; $j0['lastname']='oe'; $jiu0->add($j0); }}
複数のデータの挿入
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $jiu0=M('myguests'); $list[]=array('firstname'=>'li','lastname'=>'weifeng'); $list[]=array('firstname'=>'liu','lastname'=>'tian'); $jiu0->addAll($list); }}
R
単一レコードの読み取り検索メソッドreturns 条件を満たす最初のレコード
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $gu=M('myguests'); $data=$gu->where('firstname="lv"')->find(); dump($data); }}
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $gu=M('myguests'); $gu->where('firstname="lv"')->find(); dump($gu->data()); }}
複数データの読み込み select メソッド。クエリエラーが発生した場合、select の戻り値は false になります。クエリ結果が空の場合は、NULL が返されます。それ以外の場合は 2 次元配列を返します。
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $gu = M("myguests"); $list = $gu->where('firstname="lv"')->order('id')->limit(5)->select();//返回5条数据 dump($list); }}
フィールド値の読み取り
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $gu = M("myguests"); $list = $gu->where('id=5')->getField('firstname'); dump($list); }}
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $gu = M("myguests"); $list = $gu->getField('id',true);//返回整列 dump($list); }}
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $gu = M("myguests"); $list = $gu->getField('id,firstname',5);//返回多列,5条记录 dump($list); }}
U
save メソッド
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $gu = M("myguests"); $data['firstname']='liu'; $data['lastname']='hl'; $gu->where('id=5')->save($data); }}
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $gu = M("myguests"); $gu->firstname='liu'; $gu->lastname='hl'; $gu->where('id=6')->save(); }}
フィールドの更新
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $gu = M("myguests"); $gu->where('id=6')->setField('firstname','wang'); }}
複数のフィールドの更新
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $gu = M("myguests"); $data=array('firstname'=>'lv','lastname'=>'huan'); $gu->where('id=1')->setField($data); }}
統計フィールド (通常は数値型) を更新するために、システムは setInc メソッドと setDec メソッドも提供します。
$User = M("User"); // 实例化User对象$User->where('id=5')->setInc('score',3); // 用户的积分加3$User->where('id=5')->setInc('score'); // 用户的积分加1$User->where('id=5')->setDec('score',5); // 用户的积分减5$User->where('id=5')->setDec('score'); // 用户的积分减1
バージョン 3.2.3 以降、setInc メソッドと setDec メソッドは遅延更新をサポートします。使用方法は次のとおりです:
$Article = M("Article"); // 实例化Article对象$Article->where('id=5')->setInc('view',1); // 文章阅读数加1$Article->where('id=5')->setInc('view',1,60); // 文章阅读数加1,并且延迟60秒更新(写入)
delete メソッド
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $gu = M("myguests"); $gu->delete(2);//删除主键2对应的记录 }}
delete メソッドは、削除条件に応じて、単一のデータまたは複数のデータを削除できます。例:
$User = M("User"); // 实例化User对象$User->where('id=5')->delete(); // 删除id为5的用户数据$User->delete('1,2,5'); // 删除主键为1,2和5的用户数据$User->where('firstname="lv"')->delete(); // 删除所有firstname为"lv"的用户数据