前面学习了
ThinkPhp学习_001下载与配置 | ||||
---|---|---|---|---|
ThinkPhp学习_002建立数据库并查询与插入数据 |
ThinkPhp学习_003查询更新删除
今天要学习:1.多条查询2.数据更新3.删除记录
先学习一个网站的手册
基本查询
查询一个数据使用:
// table方法必须指定完整的数据表名
Db::table('think_user')->where('id',1)->find();
find 方法查询结果不存在,返回 null
查询数据集使用:
Db::table('think_user')->where('status',)->select();
select 方法查询结果不存在,返回空数组
如果设置了数据表前缀参数的话,可以使用
Db::name('user')->where('id',)->find();
Db::name('user')->where('status',1)->select();
如果你的数据表没有使用表前缀功能,那么name和table方法的一样的效果。
在find
和select
方法之前可以使用所有的链式操作方法。
默认情况下,find和select方法返回的都是数组。
更新数据表中的数据
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');
setField 方法返回影响数据的条数,没修改任何数据字段返回 0
3.多条查询
//多条查询:查询status大于2的所有的数据
public function select()
{
$res = Db::table('think_data')
->where('status','>',2)
->select();
if(empty($res)){
return '没有满足条件的记录';
}else{
foreach (res as row){
dump($row);
}
}
}
查询status大于2的记录。运行
2.更新,
更新id=4的记录把name修改为郭襄
//更新操作,把id=4的数据进行修改
public function update()
{
return Db::table('think_data')
->where('id',4)
->update(['name'=>'郭襄']);
}
运行,成功
3.删除记录
//删除记录,删除id=8的记录
public function delete(){
return Db::table('think_data')
->where('id',8)
->delete();
}
//删除记录方法二,删除id=10的记录
public functiondelete2()
{
return Db::table('think_data')
->delete(10);
}
只有主键才可以这样操作的
删除name=peter的记录
public function delete3()
{
return Db::table('think_data')
->where('name','=','peter')
->delete();
}
这个比较通用
运行-成功
=====今天学习到此2019.12.15===