PDO で LIKE と bindingParam を使用して文字で始まるユーザー名を照合する
PDO で bindingParam を使用したデータベース クエリでは、次のようなシナリオが発生する可能性があります。データの部分一致を検索するには LIKE 演算子を利用する必要があります。具体的には、特定の文字 (この場合は「a」で示されます) で始まるユーザー名を取得したい場合があります。
LIKE と bindingParam を正しく使用してこれを実現するには、bindParam プレースホルダーを内側の一重引用符で囲まないようにします。正しい構文は次のとおりです。
$term = "a%";
このコードは、a% の代わりにワイルドカード基準として a%' を実行しようとするとエラーを示します。
bindParam はすべての文字列値が確実にSQL ステートメントに渡されるときに適切に引用符で囲まれます。したがって、プレースホルダーを引用符で囲むことは不要であり、不正確なマッチングが行われます。
修正されたクエリは次のようになります。
$term = "a%"; $sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10"; $stmt = $core->dbh->prepare($sql); $stmt->bindParam(':term', $term, PDO::PARAM_STR); $stmt->execute(); $data = $stmt->fetchAll();
このコードは、で始まるすべてのユーザー名を正常に取得します。 bindParam の使用法内で LIKE 演算子を正しく適用して、文字 'a' を取得します。
以上がPDO で LIKE と bindingParam を正しく使用して、特定の文字で始まるユーザー名を照合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。