[英]Using LIKE wildcards inside pg_prepare
我一直在尝试在预准备语句中使用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适配器遇到了相同的问题绑定参数。 解决方案是使用变量传递“%”:
$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."%"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.