我一直在尝试在准备好的语句中使用 LIKE,但是由于使用通配符 % 而导致语法错误,php 不会执行该语句。
这是代码
$query = pg_prepare($conn, "MyStatement",
'SELECT "Query" from "MyTable"
WHERE "Query" LIKE $1%
ORDER BY "MyColumn" DESC;');
$result = pg_execute($conn, "MyStatement", array($my_param));
问题是 php 在第二行向我显示了一条警告,声称存在语法错误。
最佳答案
我在使用 PDO 适配器绑定(bind)参数时遇到了同样的问题。解决方案是将“%”与变量一起传递:
$query = pg_prepare($conn, "MyStatement",
'SELECT "Query" from "MyTable"
WHERE "Query" LIKE $1
ORDER BY "MyColumn" DESC;');
$result = pg_execute($conn, "MyStatement", array($my_param."%"));
如果你需要
...LIKE '%param%' ...
那么您的查询将是:
$result = pg_execute($conn, "MyStatement", array("%".$my_param."%"));
关于php - 在 pg_prepare 中使用 LIKE 通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10627514/