thinkphpによるmysqlのCURD操作

10301 ワード

thinkphp(3.2.3)を使用してデータベースを操作するには、まずデータベースに接続します.あるデータベースにプロファイルを書く必要があります.thinkphpはそのプロファイルに基づいて自動的にデータベースに接続します.モデルファイルはカスタマイズせず、内蔵で問題を解決します.プロファイルはディレクトリアプリケーションに書きます.phpの下:
<?php
return 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操作コードはすべてディレクトリにあります.class.phpでは、これはコントローラファイルです.以下は、Mメソッドを使用してテーブルオブジェクトをインスタンス化します.
C
データの挿入
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $jiu0=M('myguests');
        $j0['firstname']='lv';
        $j0['lastname']='oe';
        $jiu0->add($j0);
    }
}

複数のデータを挿入
<?php
namespace 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
読み取りレコードfindメソッドは、最初の条件を満たすレコードを返します.
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu=M('myguests');
        $data=$gu->where('firstname="lv"')->find();
        dump($data);
    }
}
<?php
namespace 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 D配列を返します.
<?php
namespace 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);
    }
}

フィールド値の読み込み
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu = M("myguests");
        $list = $gu->where('id=5')->getField('firstname');
        dump($list);
    }
}
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu = M("myguests");
        $list = $gu->getField('id',true);//    
        dump($list);
    }
}
<?php
namespace 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メソッド
<?php
namespace 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);
    }
}
<?php
namespace 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();
    }
}

フィールドの更新
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu = M("myguests");
        $gu->where('id=6')->setField('firstname','wang');
    }
}

複数フィールドの更新
<?php
namespace 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   (  )

D
deleteメソッド
<?php
namespace 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"