$percent = ‘%’;
$st=$db->prepare(“SELECT * FROM x WHERE y LIKE ?”);
$st=$st->execute(array(‘%’.$percent.’%’)); /*I want to get all records with the string % included like 5% etc.*/
上面的示例将无法正确匹配,而是匹配表x中的所有记录。为了使其正常工作,我显然需要设置$ percent ='\%'。
这是我对准备好的陈述背后的概念感到困惑的地方。我认为准备语句的重点是值本身($百分比)只会被解释为字符串而不是特殊的通配符。我将不胜感激任何反馈。
提前致谢
答案 0 :(得分:-1)
在PDO标记(info)中,您将找到在参数中使用通配符的正确过程。
然后你可以在参数中转义%
。
$percent = '%\%%';//Escape % within % wildcards
.......
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
.........
$st=$db->prepare("SELECT * FROM x WHERE y LIKE ?");
$st=$st->execute(array($percent’));