ネイティブ クエリ (クエリ ビルダー 13)


Db クラスは、主に次の 2 つのメソッドを含むネイティブ SQL クエリ操作をサポートします。

クエリ メソッド

クエリ メソッドは、次の目的で使用されます。 SQL クエリの実行操作は、select メソッドと同様にクエリ結果のデータ セット (配列) を返します。

使用例:

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

現在分散データベースを使用しており、読み取りと書き込みの分離を設定している場合、SQL ステートメントに関係なく、クエリ メソッドはデフォルトで読み取りサーバー上で実行されます。は。

メイン ライブラリから読み取りたい場合は、

Db::master(true)->query("select * from think_user where status=1");

を使用できます。新しいバージョンのクエリ メソッドでサポートされているチェーン操作メソッドは次のとおりです。

チェーン メソッド説明
キャッシュクエリ キャッシュ
masterメイン データベース クエリ (分散有効) かどうか
procedureストアド プロシージャ クエリ

execute メソッド

execute は、データの更新と書き込みの SQL 操作に使用されます。データが不正であるかクエリが間違っている場合は false が返され、そうでない場合は数値が返されます。影響を受けるレコードの数が返されます。

使用例:

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

パラメータ バインディング

疑問符プレースホルダや名前付きアカウント文字など、ネイティブ クエリ中のパラメータ バインディングをサポートします。例:

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]);

パラメータ バインディングはテーブル名ではサポートされていないことに注意してください