php - 在 pg_prepare 中使用 LIKE 通配符

标签 php string postgresql-8.4

我一直在尝试在准备好的语句中使用 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/

相关文章:

php - 从某个阶段和级别获取分数列表

php - 仅在单击帖子时显示按钮

c++ - 将int转换为字符串的有效方法

Python - 如果项目是字符串,则将列表项目转换为 unicode

sql - 在存储过程中使用 WITH,postgres

php - 在 Laravel/Lumen Eloquent 中获取两个日期之间的所有年份

python - 串联字符串的字符串格式?

postgresql - 在符号之间搜索文本

postgresql - 无法创建数据库 - OperationalError : source database "template1" is being accessed by other users

PHP XDEBUG 未启用