Matching Usernames Beginning with a Character Using LIKE and bindParam in PDO
In database querying using bindParam with PDO, you may encounter scenarios where you need to utilize the LIKE operator to search for partial matches of data. Specifically, you may want to retrieve usernames that begin with a specific character, denoted as 'a' in this case.
To achieve this using LIKE and bindParam correctly, avoid enclosing the bindParam placeholder with inner single quotes. The correct syntax is:
$term = "a%";
The code exhibits an error in attempting to execute a%' as the wildcard criteria instead of a%.
Remember that bindParam ensures that all string values are quoted appropriately when passed to the SQL statement. Therefore, enclosing the placeholder in quotes is unnecessary and will result in incorrect matching.
The corrected query should read as follows:
$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();
This code will successfully retrieve all usernames that start with the character 'a' by applying the LIKE operator correctly within the bindParam usage.
以上がPDO で LIKE と bindingParam を正しく使用して、特定の文字で始まるユーザー名を照合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。