Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][PostgreSQL] problem z RETURNING
Forum PHP.pl > Forum > PHP
SaMi
Witam, chce zwrócić nr zamówienia jaki wygenerował się poprzez RETURNING, niestety moje rozwiązanie zwraca błąd:

Cytat
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "RETURNING" LINE 3: RETURNING order_id ^' in /usr/local/apache2/htdocs ....


  1. $query = " INSERT INTO zamowienia_tmp ( order_id, product, price ...)
  2. VALUES ('ZP/".date('Y-n-j')."/' || currval('order_id_seq') , :product , :price, ...) RETURNING order_id";
  3. $stmt = $pdo->prepare($query);
  4. $stmt -> bindValue(':product', $product, PDO::PARAM_STR);
  5. $stmt -> bindValue(':price', $price, PDO::PARAM_STR);
  6. .
  7. .
  8. .
  9. $stmt ->execute();
  10. $result = $stmt -> fetch();


Bez RETURNING zapytanie działa poprawnie. Co robię źle ?
viking
Jaka wersja Postgresa? Returning jest od 8.2. Jeśli oczywiście w zapytaniu które wyciąłeś nie ma błędu. I przy okazji jak tak robisz spróbuj formatować zapytania przez sprintf bo łatwo się pomylić.
SaMi
Faktycznie starsza wersja pg, moje przeoczenie.
b4rt3kk
Jeśli nie masz możliwości zmiany wersji postgresa zawsze możesz najpierw pobrać wartość sekwencji, następnie wstawić ją do rekordu i wszystko będzie się zgadzać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.