PHP PDO LIKE:与通配符组合时转义%字符

时间:2014-02-26 02:24:40

标签: php pdo wildcard sql-like

$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 ='\%'。

这是我对准备好的陈述背后的概念感到困惑的地方。我认为准备语句的重点是值本身($百分比)只会被解释为字符串而不是特殊的通配符。我将不胜感激任何反馈。

提前致谢

1 个答案:

答案 0 :(得分:-1)

在PDO标记(info)中,您将找到在参数中使用通配符的正确过程。 PDO Tag

然后你可以在参数中转义%

$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’));