Использование подстановочных знаков LIKE внутри 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 показывает мне предупреждение во второй строке, утверждая синтаксическую ошибку.
Заранее большое спасибо!!!
1 ответ
Решение
У меня были те же параметры привязки проблемы с использованием адаптеров 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."%"));