tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Postgre a úvozovky při insertu

před 6 lety

podolinek
Člen | 8

Zdravím,

mám multipleinsert dotaz do sql:

<?php
dibi::query('INSERT INTO '.$table.' %m', $args);
?>

S daty:

`Array
(
[engineInstanceId] ⇒ Array
(
[0] ⇒ 1
[1] ⇒ 1
 )

[startedAt] ⇒ Array
(
[0] ⇒ 2013–08–14 15:09:58
[1] ⇒ 2013–08–14 15:09:58
 )

[finishedAt] ⇒ Array
(
[0] ⇒ 2013–08–14 15:09:59
[1] ⇒ 2013–08–14 15:10:00
 )

[engineInputParams] ⇒ Array
(
[0] ⇒ ''
[1] ⇒ ''
 )

)`

Jenže při vygenerování mi to postgres neuvěří, že prý mu vadí uvozovky v názvu sloupců.

INSERT INTO event_1 ("engineInstanceId", "startedAt", "finishedAt", "engineInputParams") VALUES (1, '2013-08-14 15:09:58', '2013-08-14 15:09:59', ''), (1, '2013-08-14 15:09:58', '2013-08-14 15:10:00', '')

Jde nějak inteligentně jednoduše nastavit typ uvozovek u názvů sloupců v dibi?

před 6 lety

Milo
Nette Core | 1119

Jak mu vadí uvozovky? Syntakticky je to správně. Nemáš náhodou v databázi sloupce pojmenované malými písmeny?

Pro jméno tabulky použij modifikátor %n:

dibi::query('INSERT INTO %n', $table, '%m', $args);

před 6 lety

podolinek
Člen | 8

Jak mu vadí uvozovky? Syntakticky je to správně. Nemáš náhodou v databázi sloupce pojmenované malými písmeny?

Jo, to je přesně ono. Při vytváření tabulky jsem sloupce zadával sice camelized, ale bez uvozovek, takže se mi to tam lilo všechno malýma.

Díky za nakopnutí.

Ondrej