构造查询
使用构造器来构造SQL语句(相当于原生查询的替代,但没原生查询灵活),一定要以table()方法开始,以查询动作结束
查询动作
主要支持以下5个动作:
- 增:insert()
- 删:delete()
- 改:update()
- 查:select()
- 查:find(),单条记录
$db = boa::db();
$data = ['title'=>'Title', 'content'=>'Content'];
$res = $db->table('news')->insert($data); // 插入
$res = $db->table('news')->where('id = ?', $id)->delete(); // 删除
$res = $db->table('news')->where('id = ?', $id)->update($data); // 更新
$arr = $db->table('news A')
->field('A.*, B.category AS cat, COUNT(C.*) total')
->join('category B', 'A.cid = B.id')
->join('tag C', 'A.id = C.pid')
->where('A.cid = ? AND A.status = ?', $cid, $status)
->limit(50, 10)
->order('A.sort ASC, A.id DESC')
->select(); // 查询
$arr = $db->table('news')->where('id = ?', $id)->find(); // 单条查询
查询属性
可以通过distinct()、field()等方法设置SQL相应属性
更多方法参见 builder类
子查询
$db = boa::db();
$sql = $db->table('news')->field('id')->where('id < ?', $id)->getsql()->select(); // getsql()方法返回SQL语句
$arr = $db->table('test')->where("pid IN ($sql)")->select();