Это, наверное, глупый вопрос, но я ответил Googling на большую часть дня и никуда не могу. Я пытаюсь получить следующий код кода для работы, но не могу найти никакой помощи в том, как правильно форматировать подготовленный запрос Postgres в PHP.Переменная в цитатах в запросе Postgres
$foo = $_GET[bar];
echo $foo; // 5555
//what I'm trying to do:
pg_prepare($dbconn,"table_query","SELECT Members FROM programs WHERE programID = '$1' ");
pg_execute($dbconn,"table_query", array($foo));
Если я жестко запрограммировал инструкцию со значением, она работает нормально, но только если я включаю одинарные кавычки. Я пробовал почти каждый метод, который я могу найти, чтобы избежать одиночных кавычек или добавлять кавычки к строке, но все, что я могу получить, - это синтаксический анализ ошибок.
Что совершенно очевидно, что мне не хватает?
Редактировать: Изменен фрагмент, чтобы уточнить, что переменная, которую я получаю, не включает кавычки. Любой метод I, где я пытаюсь добавить кавычки, терпит неудачу.
Поправьте меня, если я ошибаюсь, но я думал, что я уже использовал подготовленное заявление. Должен ли я менять методы? –
@AdamAndrews: AFAIK вы используете подготовленный оператор, потому что ['pg_query_params'] (http://php.net/manual/en/function.pg-query-params.php) представляется очень тонкой оболочкой вокруг PostgreSQL C API, что также означает, что вы свободны от проблем с инъекцией. Не PHP-разработчик, но я бы предположил, что PHP попытается интерполировать этот заполнитель $ 1 в двойной кавычки (следовательно, одиночные кавычки Дарио) и '' $ 1'' является строковым литералом в SQL, тогда как '$ 1' является пронумерованным placeholder (следовательно, некорректный «$ 1» в Dario's). –
Downvoter: Пожалуйста, оставьте комментарий. –