tp5框架数据库Db增删改查常见操作总结
其他
2020-04-21 18:07:47
阅读次数: 0
添加数据insert
?
1 2 3 4 5 |
$data = [ 'name_cn' => '张三' , 'name_en' => 'jack' , ]; $res = Db::name( 'style' )->insert( $data ); |
添加数据。
?
1 |
INSERT INTO `tf_style` (`name_cn` , `name_en`) VALUES ( '张三' , 'jack' ) |
tp5还可以通过insertAll
插入多条数据。
?
1 2 3 4 5 |
$data = [ 'name_cn' => '张三' , 'name_en' => 'jack' , ]; $res = Db::name( 'style' )->insertGetId( $data ); |
获取插入的id。
修改数据update
更新数据,使用update
方法。
?
1 2 |
$res = Db::name( 'style' )->where( 'id' ,4)->update([ 'name_cn' => '李四' ]); UPDATE `tf_style` SET `name_cn` = '李四' WHERE `id` = 4; |
返回结果为影响的行数。
?
1 2 3 |
$where = new Where(); $where [ 'id' ] = [ '>' ,2]; $res = Db::name( 'style' )->where( $where )->update([ 'name_cn' => '李四' ]); |
通过$where对象进行条件操作。
?
1 2 |
$where [] = [ 'id' , '>' ,2]; $res = Db::name( 'style' )->where( $where )->update([ 'name_cn' => '王五' ]); |
也是可以的。
主键可以直接写入data数据中。
?
1 |
$res = Db::name( 'style' )->update([ 'name_cn' => '王五' , 'id' =>2]); |
结果如下:
?
1 |
UPDATE `tf_style` SET `name_cn` = '王五' WHERE `id` = 2; |
这种方式只可以修改一条数据。
只修改一个字段,使用setField
方法。
?
1 2 3 |
$res = Db::name( 'style' )->where( 'id' ,2)->setField([ 'name_cn' => '刘备' ]); $res = Db::name( 'style' )->where( 'id' ,2)->setField([ 'name_cn' => '刘备' , 'name_en' => 'LiuBei' ]); UPDATE `tf_style` SET `name_cn` = '刘备' , `name_en` = 'LiuBei' WHERE `id` = 2 |
效果与update
差不多。
删除数据delete
删除一条。
?
1 2 |
$res = Db::name( 'style' )->where( 'id' ,2)-> delete (); $res = Db::name( 'style' )-> delete ( '2' ); |
删除多条。
?
1 |
$res = Db::name( 'style' )-> delete ( '2,3' ); |
id写在字符串里面。
?
1 |
$res = Db::name( 'style' )-> delete ([2,3,4]); |
或者通过id数组。
查询数据select
?
1 2 3 |
$data = Db::query( 'select * from tf_action' ); $data = Db::query( 'select * from tf_action where id > ? and id < ?' ,[1,10]); $sql = Db::getLastSql(); |
查询用query。
删除,增加,修改,用execute。
?
1 |
$data = Db::table( 'tf_action' )->select(); |
这里用的是表全名。
?
1 |
$data = Db::name( 'action' )->select(); |
这里用的是去掉前缀的表名。
?
1 |
$data = db( 'action' )->select(); |
助手函数,效果与Db::name
差不多。
但是又不完全相同。
?
1 |
$data = db( 'action' )->where( 'id' , '>' ,1)->where( 'id' , '<' ,9)->select(); |
多条件查询。
?
1 |
$data = db( 'action' )->where( 'id' , '>' ,20)->whereOr( 'id' , '<' ,9)->select(); |
或查询。
如果中间的条件是空,就是=的意思。
?
1 2 3 4 5 6 7 |
$where = new Where(); $where [ 'name' ] = [ 'like' , '%户%' ]; $where [ 'id' ] = [ '>' ,1]; $data = db( 'action' )->where( $where )->select(); $where [] = [ 'name' , 'like' , '%户%' ]; $where [] = [ 'id' , '>' ,1]; $data = db( 'action' )->where( $where )->select(); |
组合查询。
?
1 2 3 4 |
$where = new Where(); $where [ 'name' ] = [ 'like' , '%户%' ]; $where [ 'id' ] = [ '>' ,1]; $data = db( 'action' )->where( $where )->limit(2,2)->order( 'id desc' )->select(); |
分页排序。
?
1 2 3 4 |
$where = new Where(); $where [ 'name' ] = [ 'like' , '%户%' ]; $where [ 'id' ] = [ '>' ,1]; $data = db( 'action' )->where( $where )->limit(2,2)->order( 'id desc' )->field( 'id,name' )->select(); |
查询指定字段。
?
1 2 3 4 |
$where = new Where(); $where [ 'name' ] = [ 'like' , '%户%' ]; $where [ 'id' ] = [ '>' ,1]; $data = db( 'action' )->where( $where )->limit(2,2)->order( 'id desc' )->field( 'id aid,name' )->select(); |
起别名。
?
1 |
$data = db( 'action' )->where( $where )->field( 'count(*) as count' )->find(); |
使用系统函数。
?
1 |
$data = db( 'action' )->where( "name like '%户%' AND id > 1" )->select(); |
直接写字符串也是OK的。
发布了23 篇原创文章 ·
获赞 2 ·
访问量 5241
转载自blog.csdn.net/bianlitongcn/article/details/103973284