使用 PDO 扩展绑定 LIKE 值
使用 LIKE 查询时,重要的是要考虑如何使用 PDO 扩展绑定变量值。当将“%”通配符放在搜索字符串末尾时,可能会带来一些挑战。
在提供的查询中:
select wrd from tablename WHERE wrd LIKE '$partial%'
出现了关于如何绑定带 PDO 的 ${partial} 变量。值得考虑三个选项:
选项 1: 在末尾与 '%' 绑定
select wrd from tablename WHERE wrd LIKE ':partial%'
在此选项中,参数 :partial 绑定到值 $partial="somet",保留末尾的 '%'。
选项 2: 绑定末尾不带 '%'
select wrd from tablename WHERE wrd LIKE ':partial'
中此选项 :partial 绑定到 $partial="somet%",实际上在搜索字符串末尾有一个固定的 '%'。
选项 3: 使用 MySQL 的 CONCAT 函数
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
此选项允许在 MySQL 本身内执行搜索词和“%”的串联。
此外,如果您要查找的搜索词可能包含LIKE 运算符中具有特殊含义的字符,例如 '%'、'_' 或 '',需要使用字符串转义的更复杂的方法:
$stmt= $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'"); $escaped= str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var); $stmt->bindParam(':term', $escaped);
以上是如何将 LIKE 值与 PDO 扩展绑定?的详细内容。更多信息请关注PHP中文网其他相关文章!