ホームページ > 記事 > PHPフレームワーク > 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('表达式','查询条件');式では大文字と小文字が区別されません。サポートされているクエリ式はそれぞれ次のとおりです。意味は次のとおりです:
#
$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 サイトの他の関連記事を参照してください。