ホームページ  >  記事  >  バックエンド開発  >  thinkPHP フレームワークでネイティブ SQL ステートメントを実行する方法

thinkPHP フレームワークでネイティブ SQL ステートメントを実行する方法

不言
不言オリジナル
2018-06-07 17:38:357620ブラウズ

この記事では、thinkPHP フレームワークでネイティブ SQL ステートメントを実行する方法を主に紹介し、thinkPHP でのネイティブ SQL ステートメントの実行に関連する操作スキルを例の形式で分析し、クエリ メソッドと実行メソッドの違いを簡単に分析します。必要な友達 次の例を参照してください。

この記事では、thinkPHP フレームワークでネイティブ SQL ステートメントを実行する方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

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 操作をサポートし、クエリと実行の 2 つのメソッドを提供します。なぜネイティブ SQL が 2 つのメソッドを区別する必要があるのか​​というと、次の 2 つの理由があります。

1. types

query は のクエリに使用され、 はデータ セット を返します。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');

この場合、SQL ステートメントの記述を簡略化できます。例:

$User->query('select * from __TABLE__ where status=1');
$User->execute('update __TABLE__ set status=1 where id=1');

システムは自動的に ## を置き換えます。 #__TABLE__

現在のモデルに対応するデータ テーブル 名前と実際のデータ テーブルはモデルによって決まります。 一般に、

ORM や CURD では実装が難しい一部の操作を実装するために、ネイティブ SQL 操作を使用します。

さらに、SQL が複雑でなければ、効率とネイティブ SQL の一貫性 運用効率の差は最小限であり、TP 自体の ORM 実装も非常に効率的です。 以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

ThinkPHP5 フレームワークはバッチ クエリを実装するだけです


ThinkPHP3.2 フレームワークは addAll() を使用してバッチを挿入しますデータメソッド


thinkPHP5 でデータベースにコンテンツを追加する方法

以上がthinkPHP フレームワークでネイティブ SQL ステートメントを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。