thinkphp がデータベースにクエリを実行する方法

藏色散人
リリース: 2019-08-23 13:30:19
オリジナル
5651 人が閲覧しました

thinkphp がデータベースにクエリを実行する方法

# thinkphp はどのようにしてデータベースにクエリを実行しますか?

データベース クエリ

ThinkPHP には、データ クエリ操作を迅速に実行できる非常に柔軟なクエリ メソッドが組み込まれています。

クエリ条件は、CURD などのあらゆる操作に使用でき、where メソッドのパラメータとして渡すことができます。

ThinkPHP はクエリ条件として文字列の直接使用をサポートできますが、ほとんどの場合、より安全であるため、クエリ条件としてインデックス配列またはオブジェクトを使用することをお勧めします。

クエリ方法

1. クエリ条件として文字列を使用する

これは最も伝統的な方法ですが、より安全です。たとえば、高くありません。

$User = M("User"); // 实例化User对象
$User->where('type=1 AND status=1')->select();
ログイン後にコピー

最後に生成された SQL ステートメントは

SELECT * FROM think_user WHERE type=1 AND status=1
ログイン後にコピー

です。 2. クエリ条件として配列を使用します。

$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['status'] = 1;
 // 把查询条件传入查询方法
$User->where($condition)->select();
ログイン後にコピー

最後に生成された SQLステートメント Yes

SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1
ログイン後にコピー

複数フィールド クエリを実行する場合、フィールド間のデフォルトの論理関係は論理 AND ですが、_logic を使用してクエリ ロジックを定義することにより、次のルールを使用してデフォルトの論理判断を変更できます。

$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR'; //定义查询逻辑
 // 把查询条件传入查询方法
$User->where($condition)->select();
ログイン後にコピー

最終的に生成される SQL ステートメントは

SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'
ログイン後にコピー

3. オブジェクト メソッドを使用してクエリを実行します (ここでは、stdClass 組み込みオブジェクトを例にします) )

$User = M("User"); // 实例化User对象
 // 定义查询条件
$condition = new stdClass(); 
$condition->name = 'thinkphp'; 
$condition->status= 1; 
$User->where($condition)->select();
ログイン後にコピー

最終的に生成される SQL ステートメントは上記と同じです

SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
ログイン後にコピー

オブジェクト モード クエリを使用した場合と配列クエリを使用した場合の効果は同じであり、互換性があります。場合によっては、より効率的に配列モードを使用することをお勧めします。後で、配列メソッドを例として使用して、特定のクエリ言語の使用法を説明します。

式クエリ

上記のクエリ条件は単純な等価判定です。クエリ式は、より多くの SQL クエリ構文をサポートするために使用でき、配列内のクエリやクエリとして使用できます。オブジェクト モード (以下の例では配列モードのみが使用されています) の場合、クエリ式の形式は次のとおりです:

$map['字段名'] = array('表达式','查询条件');
ログイン後にコピー

式では大文字と小文字が区別されません。サポートされているクエリ式はそれぞれ次のとおりです。意味は次のとおりです:

thinkphp がデータベースにクエリを実行する方法#

$map['id']  = array('eq',100);  id = 100;
 $map['id']  = array('egt',100);id >= 100
 $map['name'] = array('like','thinkphp%'); name like 'thinkphp%' 模糊查询
 $map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND'); (a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')
ログイン後にコピー

この記事は、ThinkPHP フレームワークの技術記事コラムからのものです:

http://www.php.cn/phpkj/thinkphp /

以上がthinkphp がデータベースにクエリを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート