本文將提到:
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'])
