Nette\Database při volání více dotazů najednou nevyhodí případnou chybu

před 6 měsíci

Šroubek
Člen | 8
+
0
-

Ahoj,
narazil jsem na problém, že pokud do Nette\Database\Connection pošlu více SQL dotazů oddělených středníkem, tak případná chyba v SQL nevyvolá Exception v PHP.

Mám například něco takového:

$sql = "TRUNCATE TABLE `my_table`; INSERT INTO `my_table` SELECT ..."; // sada dotazů získávána z jiné fce/service...
$database->query($sql);
print "DONE";

Pokud by INSERT spadld na Duplicate entry '...' for key 'PRIMARY', tak script na to nezareaguje a běží dál a vypíše DONE.

Pokud bych dotazy rozdělil:

$sql_1 = "TRUNCATE TABLE `my_table`;";
$sql_2 = "INSERT INTO `my_table` SELECT ...";
$database->query($sql_1);
$database->query($sql_2);
print "DONE";

tak script správně vyhodí Exception.

Můj dotaz tedy zní, lze nějak Nette\Database\Connection donutit, aby i při chybě v sadě sql dotazů oddělených středníkem vyhodil Exception (a dalo se ji odchytit a korektně na ni zareagovat místo tichého přejití)?

Díky

Editoval Šroubek (14. 8. 2019 11:13)

před 6 měsíci

CZechBoY
Člen | 3462
+
0
-

Asi by to chtělo v Nette něco jako je tady https://stackoverflow.com/…urn-an-error