Db類支持原生SQL查詢操作,主要包括下面兩個方法:

query方法


query方法用于執行SQL查詢操作,如果數據非法或者查詢錯誤則返回false,否則返回查詢結果數據集(同select方法)。

使用示例:

Db::query("SELECT * from think_user where status=1");

如果你當前采用了分布式數據庫,并且設置了讀寫分離的話,query方法始終是在讀服務器執行,因此query方法對應的都是讀操作,而不管你的SQL語句是什么。

execute方法


execute用于更新和寫入數據的sql操作,如果數據非法或者查詢錯誤則返回false ,否則返回影響的記錄數。

使用示例:

Db::execute("update think_user set name='thinkphp' where status=1");

如果你當前采用了分布式數據庫,并且設置了讀寫分離的話,execute方法始終是在寫服務器執行

,因此execute方法對應的都是寫操作,而不管你的SQL語句是什么。

參數綁定

支持在原生查詢的時候使用參數綁定,包括問號占位符或者命名占位符,例如:

Db::query("SELECT * from think_user where id=? AND status=?",[8,1]);
// 命名綁定
Db::execute("update think_user set name=:name where status=:status",['name'=>'thinkphp','status'=>1]);