Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework][ZF2] Błąd w zapytaniu SQL
viking
post 15.11.2016, 12:31:35
Post #1





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Mam taki kod:
  1. $delete = $this->tableGateway->getSql()->delete();
  2. $interval = new SqlExpression('NOW() + INTERVAL ?', [sprintf('%d days', (int) $days)]);
  3. $delete->where->lessThan('some_date', $interval);
  4. \Zend\Debug\Debug::dump($delete->getSqlString($this->tableGateway->getAdapter()->getPlatform()));
  5. return $this->tableGateway->deleteWith($delete) > 0;


I cały czas dostaję: Statement could not be executed (42601 - 7 - BŁĄD: błąd składni w lub blisko "$1" LINIA 1: ..." WHERE "some_date" < NOW() + INTERVAL $1 ^)
dump zwraca poprawne zapytanie które po przeklejeniu do pgadmin bez problemu się wykonuje

Profiler:
Cytat
SQL DELETE FROM "schemat"."tabela" WHERE "some_date" < NOW() + INTERVAL :where1subpart1 Params where1subpart1 => '0 days'
Time 207,90 µs


Sprawdzałem wartości w Zend\Db\Adapter\Driver\Pdo\Statement->execute() i teoretycznie wszystko się zgadza, jest bindowane jako PARAM_STR.

Jakieś pomysły?
Tymczasowo mogę to obejść robiąc np NOW() + INTERVAL '1 day' * ? ale chciałbym wiedzieć dlaczego nie działa.


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:18