thinkphp はファジー クエリの例のように実装します。 thinkphp ファジー クエリ_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:15:47
オリジナル
1402 人が閲覧しました

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

この記事の例は、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 ですが、_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','jb51%');
$userForm->where($where)->select();

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

コードをコピーします コードは次のとおりです: name like 'jb51%'
クエリステートメント:

コードをコピー コードは次のとおりです: $where['name']=array('like',array('%jb51%','%.com'),'OR '); 同様のクエリは次のとおりです:
コードをコピーします
コードは次のとおりです: 「%jb51%」のような名前、または「%.com」のような名前
クエリステートメント:
コードをコピー

コードは次のとおりです:$where['name']=array(array('like','%a%'),array('like','% b%' ),array('like','%c%'),'jb51','or'); 同様のクエリは次のとおりです:
コードをコピーします
コードは次のとおりです:(`name` LIKE '%a%') OR (`name` LIKE '%b%') OR (`name` LIKE '% c%') OR (`name` = 'jb51')
クエリステートメント:
コードをコピー

コードは次のとおりです:$where['_string']='("%jb51%"のような名前) OR ("%jb51"のようなタイトル)'; 同様のクエリは次のとおりです:
コードをコピーします
コードは次のとおりです: '%jb51%' のような名前、または '%jb51' のようなタイトル
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

Zhao Tongzheng が thinkphp %{$_POST['username']}% の SQL ファジー クエリについて話すとき、なぜ {} があるのですか?

変数の前後に文字がある場合は、それを区別するために {} を追加する必要があります。そうでない場合、システムはデフォルトで $ の後のすべての文字を変数の名前として扱います


thinkphp を使用してデータベースにクエリを実行する方法を誰か教えてもらえませんか? なぜ機能しないのですか?

パブリック関数 serCon() { $search = $_GET['wd']; $where['title'] = array('like',"%$search%"); $db = M('ThemeCards'); ;where($where)->find(); print_r($db); }"%$search%" では一重引用符を使用できません。一重引用符を使用すると、変数は文字列として扱われるため解析できません。正しくは、
where 条件では、下の階で述べたように、$where 変数全体が必要です。ここでの戻り値は配列型であり、配列を出力する自己カプセル化関数の場合は print_r が必要です。これは無視できます。


http://www.bkjia.com/PHPjc/902781.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/902781.html技術記事 Thinkphp によるファジー クエリの例、thinkphp ファジー クエリ この記事では、thinkphp によるファジー クエリのような実装方法について説明し、参考のために共有します。具体的な実装方法は以下の通りです...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート