thinkphp でネイティブ SQL ステートメントを実行するにはどうすればよいですか?
$Model = new Model();//或者 $Model = D(); 或者 $Model = M(); $sql = "select * from `order`"; $voList = $Model->query($sql);
Model のメソッドを継承するには、空の新しいモデルが必要です。
注query はクエリ関数、execute は追加、削除、および変更関数です
属性値のクエリと読み取りの例:
$sql = "select * from goods"; $Model = M(); $result = $Model->query($sql); foreach ($result as $k=>$val){ $goods_id = $val["goods_id"]; }
tP のモデルは、クエリとクエリの両方を提供するネイティブ SQL 操作をサポートできます。ネイティブ SQL が 2 つのメソッドを区別するのはなぜですか? 理由は 2 つあります:
1. 異なる戻り値の型
がクエリ に使用され、 は select または findall と同じデータセット を返します。したがって、テンプレート内の volist タグを直接使用してクエリのクエリ結果を出力できます
execute は書き込み操作に使用されます、影響を受けるレコードのステータスまたは数を返します
2。統計は統計の便宜のために必要です
現在のデータの読み取りと書き込みの数によって、データベースの読み取りと書き込みの操作 (クエリと実行に対応) が分離されます
ネイティブ SQL を使用するのは非常に簡単です。任意のモデルをインスタンス化する必要さえあります。例:
$Model = new Model(); // 实例化一个空模型
以下のメソッドは同等です
$Model = D();// 或者 $Model = M(); // 下面执行原生SQL操作 $Model->query('select * from think_user where status=1'); $Model->execute('update think_user set status=1 where id=1');
特定のモデルをインスタンス化しても、影響を受けることなくネイティブ SQL 操作を実行できます。例:
$User = D('User'); $User->query('select * from think_user where status=1'); $User->execute('update think_user set status=1 where id=1');
$User->query('select * from __TABLE__ where status=1'); $User->execute('update __TABLE__ set status=1 where id=1');
を現在のモデルに対応するデータ テーブルの名前に自動的に置き換えます。実際のデータテーブルはモデルによって決まります。 一般的に言えば、
私たちは皆、ORM や CURD では実装が難しい一部の操作を実装するためにネイティブ SQL 操作を使用しますさらに、 SQL が複雑でない場合、ネイティブ SQL の効率とネイティブ SQL の効率の違いが生じます。 TP 自体のコヒーレントな操作は最小限です。ORM の実装も非常に効率的です。
以上がthinkphp を実装してネイティブ SQL ステートメントを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。