利用thinkphp(3.2.3)来操作数据库,首先要连接数据库。我们需要对某数据库写一个配置文件,thinkphp会根据该配置文件自动连接上数据库。而model文件就不用自定义,内置的即可解决问题。配置文件写于目录application\home\conf\config.php下:
Copier après la connexion
到此,准备工作完成。其中,那个数据库表前缀,网上关于默认各种说法,我的默认为空。估计其他前缀,打开phpmyadmin可以看到吧。
CURD操作代码都在目录application\home\controller\indexcontroller.class.php里,这是控制器文件。下面都是采用M方法实例化表对象的。
C
插入数据
1 | <?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 ); }}
|
Copier après la connexion
插入多条数据
1 | <?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 ); }}
|
Copier après la connexion
R
读单条记录 find方法返回第一个符合条件的记录
1 | <?phpnamespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $gu =M( 'myguests' ); $data = $gu ->where( 'firstname="lv"' )->find(); dump( $data ); }}
|
Copier après la connexion
1 | <?phpnamespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $gu =M( 'myguests' ); $gu ->where( 'firstname="lv"' )->find(); dump( $gu ->data()); }}
|
Copier après la connexion
读多条数据 select方法 如果查询出错,select的返回值是false,如果查询结果为空,则返回NULL,否则返回二维数组。
1 | <?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();
|
Copier après la connexion
读取字段值
1 | <?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 ); }}
|
Copier après la connexion
1 | <?phpnamespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $gu = M( "myguests" ); $list = $gu ->getField( 'id' ,true);
|
Copier après la connexion
1 | <?phpnamespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $gu = M( "myguests" ); $list = $gu ->getField( 'id,firstname' ,5);
|
Copier après la connexion
U
save方法
1 | <?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 ); }}
|
Copier après la connexion
1 | <?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(); }}
|
Copier après la connexion
更新字段
1 | <?phpnamespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $gu = M( "myguests" ); $gu ->where( 'id=6' )->setField( 'firstname' , 'wang' ); }}
|
Copier après la connexion
更新多个字段
1 | <?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 ); }}
|
Copier après la connexion
而对于统计字段(通常指的是数字类型)的更新,系统还提供了 setInc 和 setDec 方法。
Copier après la connexion
3.2.3版本开始,setInc和setDec方法支持延迟更新,用法如下:
Copier après la connexion
D
delete方法
1 | <?phpnamespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $gu = M( "myguests" ); $gu -> delete (2);
|
Copier après la connexion
delete方法可以删除单个数据,也可以删除多个数据,这取决于删除条件,例如:
Copier après la connexion