db
類支援原生sql
查詢操作,主要包括下面兩個方法:
query
方法用於執行sql
查詢操作,如果資料非法或者查詢錯誤則返回false,否則返回查詢結果資料集(同select
方法)。
使用示例:
db::query("select * from think_user where status=1");
如果你當前採用了分布式資料庫,並且設定了讀寫分離的話,query方法始終是在讀伺服器執行,因此query方法對應的都是讀操作,而不管你的sql語句是什麼。
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]);
注意不支援對錶名使用引數繫結
tp5 1 資料庫監聽SQL
如果開啟資料庫的除錯模式的話,你可以對資料庫執行的任何sql操作進行監聽,使用如下方法 db listen function sql,time,explain 預設如果沒有註冊任何監聽操作的話,這些sql執行會被根據不同的日誌型別記錄到日誌中。一旦設定了sql監聽,則sql日誌需要自己接管。v5.1...
tp5 1 資料庫子查詢
首先構造子查詢sql,可以使用下面三種的方式來構建子查詢。fetchsql方法表示不進行查詢而只是返回構建的sql語句,並且不僅僅支援select,而是支援所有的curd查詢。subquery db table think user field id,name where id 10 fetchsq...
tp5 1 資料庫獲取器
db類也可以支援獲取器定義,例如 db name user withattr name function value,data select 上面的 查詢的資料集資料中的name欄位的值會統一進行小寫轉換。withattr方法可以多次呼叫,對多個字段定義獲取器。支援對json欄位定義獲取器,例如 u...