Добрый день.
На удаленном сервере Postgre есть пользовательская функция, которую нужно вызвать из веб-приложения на php.
Вызов вида
Код:
$переменная='значение_переменной'; $sql="SELECT * FROM функция_на_сервере($переменная);"; $res=pg_query($db,$sql);
не проходит
приходит ошибка: column "значение_переменной" does not exist
Как мне кажется, на сервере при подстановке получается что-то такое:
Код:
SELECT что_то FROM откуда_то WHERE значение_столбца=значение_переменной;
а должно быть так:
Код:
SELECT что_то FROM откуда_то WHERE значение_столбца='значение_переменной';
код функции мне неизвестен - она просто есть и ей нужно воспользоваться, чтобы доработать front-end приложение
Подскажите, куда копать? Как передать кавычки?
Судя по ошибке что-то
Судя по ошибке что-то намудрили с кодом, ибо ошибка говорит о том, что в запращиваемой таблице СТОЛБЕЦ с указанным именем не найден. Т.е. в функции у вас не значение столбца, а ИМЯ столбца по всей видимости подставляется, а так нельзя
Именно. Переменная,
Именно.
Переменная, передаваемая в функцию подставляется в SQL-запрос как есть. А должна быть заключена в одинарные кавычки. Проблема и состоит в том, чтобы передать в функцию на сервере значение переменной, но уже с кавычками. Тогда запрос выполнится правильно.
Тогда не вижу проблем,
Тогда не вижу проблем, передавате с кавычками:
если с кавычками, тогда
если с кавычками, тогда получается ошибка
function функция_на_сервере(unknown) does not exist
Текст функции со всеми
Текст функции со всеми данными, чтобы это воспроизвести - в студию!
Без использования PHP вызов функции работает? Например в psql
В psql он тоже не работает
В psql ошибки те же самые что и в php. текста функции у меня нет.
Есть в psql те же самые
Есть в psql те же самые ошибки, то проблема в тексте функции. Не имея текста функции, ничем помочь вам не могу