ネイティブ クエリ (クエリ ビルダー 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]);
パラメータ バインディングはテーブル名ではサポートされていないことに注意してください