PDO での LIKE 値のバインド
PDO で LIKE クエリを使用する場合、予期せぬ事態を避けるために検索値を正しくバインドする方法を理解することが重要です。 results.
部分一致によるバインド
部分一致をバインドするには、次の構文を使用できます。
SELECT wrd FROM tablename WHERE wrd LIKE :partial
パラメータをバインドします。検索する部分値の部分。たとえば、$partial = "somet" がある場合、次のようにバインドします。
$stmt->bindParam(':partial', $partial);
ワイルドカードを使用したバインド
部分一致をワイルドカードでバインドするには最後にワイルドカードを追加するには、次のいずれかの方法を使用できます:
PDO で生成されたワイルドカード:
次の構文を使用します:
SELECT wrd FROM tablename WHERE wrd LIKE ':partial%'
パラメータ :partial を、ワイルドカードを使用せずに部分値にバインドします。
SQL で生成されたワイルドカード:
次の構文:
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
パラメータ :partial をワイルドカードなしで部分値にバインドします。
複雑な LIKE クエリ
部分値に %、_、または などの特殊文字が含まれている場合は、意図しない結果を防ぐためにそれらをエスケープする必要があります。次のコードを使用します:
$stmt = $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'"); $escaped = str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var); $stmt->bindParam(':term', $escaped);
これらのガイドラインに従うことで、PDO クエリで LIKE 値を効果的にバインドできます。
以上がPDO クエリで LIKE 値を効果的にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。