Intereting Posts
Активно поддерживаемые библиотеки PHP для аутентификации пользователей? Проблемы с установкой XAMPP v1.7.4, локальный хост не работает Лучший подход к расширению полей из валидатора Установка PEAR SOAP не выполняется Разделение строки в PHP с каждым пробелом PHP и MySQL: количество возвращенных строк Когда использовать подготовленные запросы PDO. Ошибка mysql_real_escape `password_verify` вызов возвращает false для правильного пароля Реализация GCM с использованием PHP, всегда сталкивающегося с неавторизованной ошибкой 401 Laravel 4 – перенаправление на маршрут внутри javascript-кода Blade template PHP 5.3+ enable_dl не включает dl ()? Как изменить текстовое поле на видимое в зависимости от того, какой элемент выбран в раскрывающемся меню? Вызов функции PHP в теге <a>, теге привязки Как анализировать XML-файл с пространствами имен? Как я могу ограничить доступ к некоторым страницам PHP только со страниц моего сайта?

postgresql nextval вопрос о последовательностях

Я пытаюсь работать с postgresql 'nextval' в PHP. Как заполнить круглую скобку в третьей строке, чтобы заменить TXN_ID на значение nextval ('schemadb.audit_txn_seq')?

$DB->query("SELECT nextval('schemadb.audit_txn_seq')"); $DB->query('SET CONSTRAINTS ALL DEFERRED'); $DB->query('SELECT schemadb.undo_transaction(TXN_ID)'); 

Благодаря!

Вы не сказали нам, что такое переменная $DB . Думаю, вы используете PDO.

Вопрос «В любом случае, чтобы сохранить результат запроса в php-переменную», это вопрос типа beginner, и он легко объясняется в руководстве .

Вы должны понимать, что (с точки зрения PHP) нет никакой разницы между

 SELECT nextval('schemadb.audit_txn_seq') 

а также

 SELECT xcolumn FROM xtable LIMIT 1 

Если вы хотите получать значения данных из ЛЮБОГО запроса, вы делаете это всегда одним и тем же стандартным способом:

  1. запрос
  2. выполнять
  3. получать

Надеюсь, это поможет.

Пытаться:

 $DB->query("SELECT nextval('schemadb.audit_txn_seq')"); $DB->query('SET CONSTRAINTS ALL DEFERRED'); $DB->query("SELECT schemadb.undo_transaction( currval('schemadb.audit_txn_seq') )"); 

Я не уверен в взаимодействии с SET CONSTRAINTS ALL DEFERRED, но вы пробовали это сделать:

 SELECT schemadb.undo_transaction(nextval('schemadb.audit_txn_seq')) 

Вопрос в том, что возвращает «undo_transaction»? Если он вернет идентификатор транзакции при успешном завершении, то вам хорошо идти!