tp5 1 資料庫原生sql語句查詢

2021-09-13 01:47:00 字數 1000 閱讀 5009

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...