ホームページ > 記事 > PHPフレームワーク > thinkphp でファジーパーセント記号を使用する方法
ファジー データ クエリに ThinkPHP を使用する場合、より正確な検索を実現するために、多くの場合、ワイルドカード マッチングにパーセント記号 (%) を使用する必要があります。この記事では、パーセント記号を正しく使用してファジー クエリを実装する方法を紹介します。
ファジー クエリに like() メソッドを使用する場合は、パーセント記号をパラメーターとして渡す必要があります。その方法です。たとえば、「'a' で始まるユーザー名」のユーザー情報をクエリする場合は、次のコードを使用できます。
$userList = Db::table('user')->where('username', 'like', 'a%')->select();
この例では、「a%」を like() メソッドに渡します。 、ユーザー名が「a」で始まるすべてのユーザーの情報を照会することを示します。
パーセント記号文字を含むデータを実際にクエリする必要がある場合は、エスケープ文字を使用してエスケープする必要があります。そうしないと、SQL ステートメントエラーが発生します。 ThinkPHP では、バックスラッシュ "" を使用してパーセント記号をエスケープします。
たとえば、文字列「�c%」を含むユーザー情報をクエリする場合は、次のコードを使用できます:
$userList = Db::table('user')->where('username', 'like', '%abc%')->select();
この例では、パーセント記号にバックスラッシュを使用します。 SQL ステートメントのエラーを回避するためにエスケープされます。
パーセント文字を含むデータをクエリしたいが、毎回手動でパーセントをエスケープしたくない場合 いいえ.escape() メソッドを使用すると、文字列を自動的にエスケープできます。
たとえば、「�c%」文字列を含むユーザー情報をクエリする場合は、次のコードを使用できます:
$keyword = '%abc%'; $escapedKeyword = Db::escapeLikeStr($keyword); $userList = Db::table('user')->where('username', 'like', $escapedKeyword)->select();
この例では、escape() メソッドを使用します。 to $ キーワード内のパーセント記号文字は自動的に「%」形式にエスケープされるため、手動でエスケープするという面倒な操作が不要になります。
概要
ファジー クエリに ThinkPHP を使用する場合、パーセント記号を正しく使用することが非常に重要です。上記の紹介により、パーセント記号を使用する 3 つの方法、つまり like() メソッドでパーセント記号を使用する方法、エスケープ文字を使用してパーセント記号をエスケープする方法、およびエスケープ() メソッドを使用して文字列を自動的にエスケープする方法を習得できます。この記事がお役に立てば幸いです。
以上がthinkphp でファジーパーセント記号を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。