можно запросить базу данных с помощью метода pg_query_params
, например:`pg_query_params` и слишком много параметров
pg_query_params($connection, 'SELECT foo FROM bar WHERE id=$1 AND name=$2',array("Foobar","Qux"));
Однако, если запрос не использует все параметры, например, с SELECT foo FROM bar WHERE id=$1
запроса, один получает следующая ошибка:
Query failed: ERROR: bind message supplies 2 parameters, but prepared statement "" requires 1
Почему pg_query_params
так ограничительный? Можно «построить» запрос и просто добавить тесты динамически. Можно ли «отключить» это поведение? Каковы альтернативы для предложения запроса, который может (не) использовать меньше параметров, чем предоставленный один раз?
Некоторые языки и инструменты позволяют связывать именованные параметры из хэш-карты/словаря. Я не знаю, работает ли PHP, но это обычное решение. В противном случае просто добавьте параметры в массив на основе фактического запроса, который вы отправляете. –
@CraigRinger: Конечно, добавляемые параметры - это решение, но это делает процесс более сложным, чем нужно ... –