我一直在尝试在预准备语句中使用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在第二行中向我显示了一个声明语法错误的警告。
答案 0 :(得分:13)
我使用PDO适配器遇到了相同的问题绑定参数。解决方案是使用变量:
传递“%”$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."%"));