ホームページ  >  記事  >  バックエンド開発  >  thinkphp はファジークエリの例のように実装します

thinkphp はファジークエリの例のように実装します

不言
不言オリジナル
2018-06-06 14:08:318023ブラウズ

この記事では、thinkphp での like ファジー クエリの実装を主に紹介し、クエリ条件として文字列形式と配列形式での like ファジー クエリの実装方法を説明します。参考にしてください

この記事では、thinkphpのファジークエリのような実装方法の例を説明し、皆さんの参考に共有します。具体的な実装方法は次のとおりです:

現在、プロジェクト開発に thinkphp フレームワークを使用する人が増えていますが、そのカプセル化が優れているため、純粋な PHP 開発の多くの部分では、この記事の例では次のようなものを使用しています。ファジークエリを例にして説明します。

ここでは主に使用例を使用して説明します:

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

複数フィールドのクエリが実行される場合、フィールド間のデフォルトの論理関係は論理 AND 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'

2. 配列モードは次のとおりです。クエリ条件

同様のクエリを実装する方法についてこれまで説明してきたので、以下を見てみましょう

コードをコピー コードは次のとおりです:

$userForm=M('user'); 
$where['name']=array('like','php%');
$userForm->where($where)->select();

ここでの類似のクエリは次のとおりです:

コードをコピー コードは次のとおりです:

name like 'php%'

クエリステートメント:

コードをコピー コードは次のとおりです:

$where['name']=array('like',array('%php%','%.com'),'OR');

同様のクエリは次のとおりです:

name like '%php%' or name like '%.com'

コードをコピー 対象:

コードをコピー

コードは次のとおりです:

$where['name']=array(array('like','%a%'),array('like','%b%'),array('like','%c%'),'php','or');
クエリステートメント:

コードをコピー

コードは次のとおりです:

(`name` LIKE '%a%') OR (`name` LIKE '%b%') OR (`name` LIKE '%c%') OR (`name` = 'php')
同様のクエリは次のとおりです:

コードをコピー

コードは次のとおりです:

$where['_string']='(name like "%php%")  OR (title like "%php")';
クエリステートメント:

コードをコピー

コードは次のとおりです:

name like '%jb51%' or title like '%php'
同様のクエリは次のとおりです:

コードをコピーします
コードは次のとおりです:

rrreee

関連する推奨事項:

thinkphp は 163 を実装します。QQ メールボックスでメールを送受信する方法_ PHPスキル

ThinkPHPの基本的な追加、削除、確認、変更の操作例チュートリアル

🎜🎜🎜

以上がthinkphp はファジークエリの例のように実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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