0
点赞
收藏
分享

微信扫一扫

TP5语法

//如果设置了数据表前缀参数的话,可以使用

Db::name('user')->where('id',1)->find();
Db::name('user')->where('status',1)->select();
//如果你的数据表没有使用表前缀功能,那么name和table方法的一样的效果。
在find和select方法之前可以使用所有的链式操作方法。

默认情况下,find和select方法返回的都是数组。
//助手函数
系统提供了一个db助手函数,可以更方便的查询:
db('user')->where('id',1)->find();
db('user')->where('status',1)->select();
//值和列查询
查询某个字段的值可以用

// 返回某个字段的值
Db::table('think_user')->where('id',1)->value('name');
//value 方法查询结果不存在,返回 null

//查询某一列的值可以用

// 返回数组
Db::table('think_user')->where('status',1)->column('name');
// 指定索引
Db::table('think_user')->where('status',1)->column('name','id');
//column 方法查询结果不存在,返回空数组

 

//查询一个数据专用
DB::table('think_user')->where('id',1)->find();
查询的结果不存在,返回null
//查询数据集使用:
DB::table('think_user')->where('id',1)->select();
select 查询结构不存在,返回空数组
//添加数据

添加一条数据

使用 ​​Db​​​ 类的 ​​insert​​​ 方法向​​数据库​​提交数据

$data =['foo'=>'bar','bar'=>'foo'];Db::table('think_user')->insert($data);

如果你在​​database.PHP​​​配置文件中配置了数据库前缀(​​prefix​​​),那么可以直接使用 ​​Db​​​ 类的 ​​name​​ 方法提交数据

Db::name('user')->insert($data);
insert 方法添加数据成功返回添加成功的条数,insert 正常情况返回 1

添加数据后如果需要返回新增数据的自增主键,可以使用​​getLastInsID​​方法:

Db::name('user')->insert($data);=Db::name('user')->getLastInsID();

或者直接使用​​insertGetId​​方法新增数据并返回主键值:

Db::name('user')->insertGetId($data);

insertGetId 方法添加数据成功返回添加数据的自增主键

添加多条数据

添加多条数据直接向 Db 类的 insertAll 方法传入需要添加的数据即可

$data =[['foo'=>'bar','bar'=>'foo'],['foo'=>'bar1','bar'=>'foo1'],['foo'=>'bar2','bar'=>'foo2']];Db::name('user')->insertAll($data);

insertAll 方法添加数据成功返回添加成功的条数

助手函数

// 添加单条数据('user')->insert($data);// 添加多条数据('user')->insertAll($list);

更新数据表中的数据

Db::table('think_user')->where('id',1)->update(['name'=>'thinkphp']);

如果数据中包含主键,可以直接使用:

Db::table('think_user')->update(['name'=>'thinkphp','id'=>1]);
update 方法返回影响数据的条数,没修改任何数据返回 0

如果要更新的数据需要使用​​SQL​​函数或者其它字段,可以使用下面的方式:

Db::table('think_user')->where('id',1)->update(['login_time'=>['exp','now()'],'login_times'=>['exp','login_times+1'],]);

更新某个字段的值:

Db::table('think_user')->where('id',1)->setField('name','thinkphp');

高级查询
快捷查询方式是一种多字段相同查询条件的简化写法,可以进一步简化查询条件的写法,在多个字段之间用 | 分割表示 OR 查询,用&分割表示AND查询,可以实现下面的查询

Db::table('think_user')
->where('name|title','like','thinkphp%')
->where('create_time&update_time','>',0)
->find();


生成的查询sql是

select * from 'think_user' where ('name' like 'thinkphp%' OR 'title' LIKE 'thinkphp%') AND ('create_time' > 0 AND 'update_time' > 0 ) LIMIT 1

区间查询
区间查询是一种同一字段多个查询条件的简化写法,例如

Db::table('think_user')
->where('name',['like','thinkphp%'],['like','%thinkphp'])
->where('id',['>',0],['<>',10],'or')
->find();


生成的sql语句为

select * from 'think_user' where ('name' LIKE 'thinkphp%' AND 'name' LIKE '%thinkphp') AND ('id' > 0 OR 'id' <> 10) LIMIT 1


区间查询的查询条件必须使用数组定义方式,支持所有的查询表达式。

批量查询
可以进行多个条件的批量条件查询定义

Db::table('think_user')
->where([
'name' => ['like','thinkphp%'],
'title'=> ['like','%thinkphp'],
'id' => ['>',0]
'status' => 1
])



->select();

生成的sql语句为

SELECT *FROM 'think_user' WHERE 'name' LIKE 'thinkphp%' AND 'title' LIKE '%thinkphp' and 'id' > 0 AND 'status' = 1

世界上最美的风景,是自己努力的模样



举报

相关推荐

0 条评论