在这个查询中
select wrd from tablename WHERE wrd LIKE '$partial%'
我正在尝试将变量
'$partial%'
与PDO绑定。不确定最后如何与%
一起使用。可不可能是
select wrd from tablename WHERE wrd LIKE ':partial%'
:partial
绑定到$partial="somet"
的位置还是会
select wrd from tablename WHERE wrd LIKE ':partial'
:partial
绑定到$partial="somet%"
的位置还是会完全不同?
最佳答案
您还可以说:
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
在MySQL末尾进行字符串连接,并不是在这种情况下有任何特殊原因。
如果要查找的部分
wrd
本身可以包含百分比或下划线字符(因为这些字符对LIKE运算符具有特殊含义)或反斜杠(MySQL用作LIKE的另一种转义层),则事情会变得有些棘手。运算符-根据ANSI SQL标准,不正确)。希望这不会对您造成影响,但是如果您确实需要解决此问题,则可以使用以下凌乱的解决方案:
$stmt= $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'");
$escaped= str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var);
$stmt->bindParam(':term', $escaped);