Oznámení
Omlouváme se, provoz fóra byl ukončen
Chyba při použití modifikátoru %in v PostgreSQL
Upozornění: Tohle vlákno je hodně staré.
před 10 lety
- Bernard Williams
- Člen | 207
Nazdárek,
při použití modifikátoru %in v PostgreSQL mi dibi háže chybu:
SQL translate error: INSERT INTO "table" (column1, column2) VALUES ('value1', **Unknown or invalid modifier %in**)
Je bug nebo dělám někde chybu?
S poděkováním
Bernard
před 10 lety
- David Grudl
- Nette Core | 6806
Zkus sem poslat celý kód, jak jej voláš.
před 10 lety
- Bernard Williams
- Člen | 207
private $db;
public function startup() {
parent::startup();
$this->db = New DibiConnection(Environment::getConfig('database'));
}
public function citatFormSubmitted(AppForm $form) {
if ($form->isSubmitted()) {
try {
$value = $form->getValues();
$this->db->query('INSERT INTO [sntc_citaty] (citat, autor_id) VALUES (%s, %in)', $value['citat'], $value['autor']);
...
} catch (DibiException $e) {
...
}
}
}
Pokud vstupní parametry ošetřím a změním modifikátor, tak už to vše šlape.
$this->db->query('INSERT INTO [sntc_citaty] (citat, autor_id) VALUES (%s, %i)', $value['citat'], (empty($value['autor']) ? NULL : $value['autor']));
Editoval Bernard Williams (23. 7. 2009 11:57)
před 10 lety
- David Grudl
- Nette Core | 6806
Nejsem schopen tu chybu dohledat. Můžeš zkusit ještě dumpnout
$value['autor']
?
před 10 lety
- Bernard Williams
- Člen | 207
debug::dump($value['autor']);
Výstup, pokud autora vyberu: string(3) "178"
A výstup, pokud jej nevyberu: string(1) "0"
Nepomáhá ani přetypování: (int)$value['autor']
. Nemůže
být prostě chyba v driveru pro PostgreSQL? Funguje vůbec někomu ten
modifikátor %in v PostgreSQL?