TP6-数据库的操作(增删改查)
查询数据
查询单条数据 使用 find() 方法
// table方法必须指定完整的数据表名 Db::table('user')->where('id',1)->find();
find方法查询结果不存在返回NULL,否则返回结果数组
查询多条数据/数据集 使用 select() 方法
Db::table('user')->select();
select方法查询结果是一个数据集对象,如果需要转换成数组可以使用 toArray()
Db::table('user')->select()->toArray();
值和列的查询
查询某个字段的值可以使用 value()
// 查询某一字段某一个值--必须加条件 Db::table('user')->where('id',1)->value('name');
value查询结果不存在,返回NULL
查询某一列的值可以使用 column()
// 查询某一列的值 Db::table('user')->column('name');
column查询结果不存在,返回空数组
添加数据 save insert
可以使用save
方法统一写入数据,自动判断是新增还是更新数据(以写入数据中是否存在主键数据为依据)。
// save $arr = ['name' => 'zhangsan' , 'pasd' => 123456]; Db::table('user')->save($arr);
// insert $arr = ['name' => 'zhangsan' , 'pasd' => 123456]; Db::table('user')->insert($arr);
添加数据后如果需要返回新增数据的自增主键,可以使用insertGetId
方法新增数据并返回主键值:
Db::table('user')->insertGetId($arr);
添加多条数据直接向 Db 类的 insertAll
方法传入需要添加的数据(通常是二维数组)即可。
// 添加多条数据 $arr = [ ['name'=>'zhangsan','pasd'=>123456], ['name'=>'lisi','pasd'=>123456], ['name'=>'wangwu','pasd'=>123456] ]; // insertAll Db::table('user')->insertAll($arr);
insertAll
方法添加数据成功返回添加成功的条数
更新数据
可以使用save方法或者update方法
// 更新数据 $arr = [ 'id'=>1, 'name'=>'zhangsan', 'pasd'=>123456 ]; // save -- 数组里面加条件 Db::table('user')->save($arr);
$arr = [ 'name'=>'zhangsan', 'pasd'=>123456 ]; // update -- 执行语句加条件 Db::table('user')->where('id',1)->update($arr);
数据自增、自减
可以使用inc/dec
方法自增或自减一个字段的值( 如不加第二个参数,默认步长为1)。
// 自增、自减 Db::table('user')->where('id',10)->inc('jsid',5)->update(); Db::table('user')->where('id',10)->dec('jsid',5)->update();
删除数据
// 根据主键删除 Db::table('think_user')->delete(1); Db::table('think_user')->delete([1,2,3]);
// 条件删除 Db::table('think_user')->where('id',1)->delete(); Db::table('think_user')->where('id','<',10)->delete();