UDF PostgreSQL и php

Добрый день.
На удаленном сервере Postgre есть пользовательская функция, которую нужно вызвать из веб-приложения на php.

Вызов вида

Код:

$переменная='значение_переменной';
$sql="SELECT * FROM функция_на_сервере($переменная);";
$res=pg_query($db,$sql);

не проходит
приходит ошибка: column "значение_переменной" does not exist

Как мне кажется, на сервере при подстановке получается что-то такое:

Код:
SELECT что_то FROM откуда_то WHERE значение_столбца=значение_переменной;

а должно быть так:

Код:
SELECT что_то FROM откуда_то WHERE значение_столбца='значение_переменной';

код функции мне неизвестен - она просто есть и ей нужно воспользоваться, чтобы доработать front-end приложение

Подскажите, куда копать? Как передать кавычки?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Судя по ошибке что-то

Судя по ошибке что-то намудрили с кодом, ибо ошибка говорит о том, что в запращиваемой таблице СТОЛБЕЦ с указанным именем не найден. Т.е. в функции у вас не значение столбца, а ИМЯ столбца по всей видимости подставляется, а так нельзя

Именно. Переменная,

Именно.
Переменная, передаваемая в функцию подставляется в SQL-запрос как есть. А должна быть заключена в одинарные кавычки. Проблема и состоит в том, чтобы передать в функцию на сервере значение переменной, но уже с кавычками. Тогда запрос выполнится правильно.

Тогда не вижу проблем,

Тогда не вижу проблем, передавате с кавычками:

$sql="SELECT * FROM функция_на_сервере('$переменная');";

если с кавычками, тогда

если с кавычками, тогда получается ошибка

function функция_на_сервере(unknown) does not exist

Текст функции со всеми

Текст функции со всеми данными, чтобы это воспроизвести - в студию!
Без использования PHP вызов функции работает? Например в psql

В psql он тоже не работает

В psql ошибки те же самые что и в php. текста функции у меня нет.

Есть в psql те же самые

Есть в psql те же самые ошибки, то проблема в тексте функции. Не имея текста функции, ничем помочь вам не могу

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023