ThinkPhp学习_003查询更新删除

前面学习了

ThinkPhp学习_001下载与配置

ThinkPhp学习_002建立数据库并查询与插入数据

ThinkPhp学习_003查询更新删除

今天要学习:1.多条查询2.数据更新3.删除记录

先学习一个网站的手册

基本查询

查询一个数据使用:

  1. // table方法必须指定完整的数据表名
  2. Db::table('think_user')->where('id',1)->find();

find 方法查询结果不存在,返回 null

查询数据集使用:

  1. Db::table('think_user')->where('status',)->select();

select 方法查询结果不存在,返回空数组

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

  1. Db::name('user')->where('id',)->find();
  2. Db::name('user')->where('status',1)->select();

如果你的数据表没有使用表前缀功能,那么name和table方法的一样的效果。

findselect方法之前可以使用所有的链式操作方法。

默认情况下,find和select方法返回的都是数组。

更新数据表中的数据

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

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

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

update 方法返回影响数据的条数,没修改任何数据返回 0

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

  1. Db::table('think_user')
  2. ->where('id', 1)
  3. ->update([
  4. 'login_time' => ['exp','now()'],
  5. 'login_times' => ['exp','login_times+1'],
  6. ]);

更新某个字段的值:

  1. Db::table('think_user')
  2. ->where('id',1)
  3. ->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===