Nette\Database při volání více dotazů najednou nevyhodí případnou chybu
- Šroubek
- Člen | 8
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)
- CZechBoY
- Člen | 3608
Asi by to chtělo v Nette něco jako je tady https://stackoverflow.com/…urn-an-error