本文将提到:
1.原生查询操作的读操作:query()
2.原生查询操作的写操作:insert/update/delete,execute()
3.查询构造器
4.where()函数:可以根据其他字段查询
5.order(),limit()函数
对于数据库的配置在框架中app\config\database.php中已经配置好了,所以下面将默认已经连接上了数据库
作为例子展示的数据表:
1.原生查询操作的读操作:query()
public function demo1()
{
$sql = "SELECT `userName` FROM `admin` WHERE `id`=:id ";
$map = ['id' => 1];
$res = Db::query($sql, $map);
dump($res);//打印查询结果$res
}
2.原生查询操作的写操作:insert/update/delete,execute()
public function demo2()
{
$sql = "UPDATE `admin` SET `status`=:status WHERE `id`=:id ";
$map = ['id' => 1, 'status' => 0];
$res = Db::execute($sql, $map);
return '成功更新了'.$res.'条记录';
}
数据表中 id=1 的 status从1变为0
3.查询构造器
① find() : 返回满足条件的第一条记录,单条记录;无返回null
//table():设置数据表
//field():设置查询字段列表
public function demo3()
{
$res = Db::table('admin')
->field('id, userName, phone')
->find(2);//支持将主键作为参数:WHERE `id` = 2
dump($res);
}
②select() : 返回满足条件的多条记录
public function demo4()
{
$res = Db::table('admin')
->field('id, userName, phone')
//注:select(2, 3)只返回第一条;select([2, 3])应放入数组中
->select();//同上
dump($res);
}
4 . where()函数:可以根据其他字段查询
设置查询条件 主要类型:字符串,表达式,数组
(1)字符串
public function demo5()
{
$res = Db::table('admin')
->field('id, userName, phone')//field()仅返回对应字段
//1.字符串
->where('status > 0')
->select();
dump($res);
}
(2)表达式
public function demo5()
{
$res = Db::table('admin')
->field('id, userName, phone')//field()仅返回对应字段
//2.表达式:推荐
->where('id','between',[1,3])//参数格式:字段,操作符,值
->select();
dump($res);
}
(3)数组
①关联数组:等值查询,AND
public function demo5()
{
$res = Db::table('admin')
->field('id, userName, phone')//field()仅返回对应字段
// ①关联数组
->where(['id' => 1, 'phone' => 123])
->select();
dump($res);
}
打印sql语句看一下(在where()和select()中间插入下面代码)
->fetchSql(true)
②索引数组:批量查询
public function demo5()
{
$res = Db::table('admin')
->field('id, userName, phone')//field()仅返回对应字段
//②索引数组
->where([
// ‘0=>’ 索引值可以忽略,默认值
0 => ['id','between',[1,3]],
1 => ['status','>',0]
])
->select();
dump($res);
}
5.order(),limit()函数
①单字段排序
//order(),limit()
public function demo6()
{
$res = Db::table('admin')
->field('id, userName, phone')
//单字段排序
->order('id', 'desc')//默认升序asc,desc:降序
->limit(2,2)//从第2行开始的2条数据,常用于分页查询
->select();
dump($res);
}
②多字段排序,用数组参数
讲单字段排序中order()一行改为以下代码即可
->order(['id'=>'asc', 'phone'=>'desc'])
原文出处:https://www.cnblogs.com/yi2105/p/11532215.html
来源:oschina
链接:https://my.oschina.net/u/4373953/blog/3252904