Update-Methode aktualisiert nicht die entsprechenden Spalten in der Datenbank (ohne Fehlermeldung)
bearbeitet von
Hallo alle - dies ist eine Aufgabe an borisbaer. Nicht vorsagen 😉
Hallo borisbaer,
> (ohne Fehlermeldung)
> Was übersehe ich?
Die Fehlermeldung. Da **muss** eine sein. Dein generiertes SQL ist in dem von Dir beschriebenen Schlecht-Fall definitiv falsch.
Und Du übersiehst, dass man grundsätzlich SQL Fehlercodes prüfen und im Fehlerfall das generierte SQL zusammen mit allen verfügbaren Fehlerinformationen loggen muss. Dann weißt Du, was faul ist. Wenn nicht, kann ein Blick ins SQL Handbuch lehrreich sein.
Fehlermeldungen kann es nach jedem API Aufruf geben.AOb deine nach prepare() oder execute() kommt, weiß ich grad nicht. Einer vorn beiden geht schief.
Du könntest auch PDO::ATTR_ERRMODE auf PDO::ERRMODE_EXCEPTION setzen. Das geht auf jeden Fall im PDO-Konstruktor. Es geht auch mit der setAttribute-Methode. Ob es auch als $options-Parameter im prepare-Aufruf geht, weiß ich jetzt nicht. Mit dem EXCEPTION-Modus kannst Du dexn ganzen SQL Teil in einen großen try/catch einpacken und weißt, dass Du be()-Ai Fehlern automatisch in den catch-Teil fliegst. Das sparut Dir die ständigen Fehlerabfragen.
Nebenbei 1: In generiertem SQL sollte man Tabellen- und Spaltennamen in Backticks einschließen
Nebenbei 2: Du solltest auch keine Defaultwerte für $columns und $conditions vorgeben. Ein leeres Array dürfte für beide Parameter keinen Sinn ergeben. Du solltest statt dessen eine Abfrage einbauen, ob mindestens ein Eintrag drin ist.
_Rolf_
--
sumpsi - posui - obstruxi
Hallo borisbaer,
> (ohne Fehlermeldung)
> Was übersehe ich?
Die Fehlermeldung. Da **muss** eine sein. Dein generiertes SQL ist in dem von Dir beschriebenen Schlecht-Fall definitiv falsch.
Und Du übersiehst, dass man grundsätzlich SQL Fehlercodes prüfen und im Fehlerfall das generierte SQL zusammen mit allen verfügbaren Fehlerinformationen loggen muss. Dann weißt Du, was faul ist. Wenn nicht, kann ein Blick ins SQL Handbuch lehrreich sein.
Fehlermeldungen kann es nach jedem API Aufruf geben.
Du könntest auch PDO::ATTR_ERRMODE auf PDO::ERRMODE_EXCEPTION setzen. Das geht auf jeden Fall im PDO-Konstruktor. Es geht auch mit der setAttribute-Methode. Ob es auch als $options-Parameter im prepare-Aufruf geht, weiß ich jetzt nicht. Mit dem EXCEPTION-Modus kannst Du de
Nebenbei 1: In generiertem SQL sollte man Tabellen- und Spaltennamen in Backticks einschließen
Nebenbei 2: Du solltest auch keine Defaultwerte für $columns und $conditions vorgeben. Ein leeres Array dürfte für beide Parameter keinen Sinn ergeben. Du solltest statt dessen eine Abfrage einbauen, ob mindestens ein Eintrag drin ist.
_Rolf_
--
sumpsi - posui - obstruxi
Update-Methode aktualisiert nicht die entsprechenden Spalten in der Datenbank (ohne Fehlermeldung)
bearbeitet von
Hallo alle - dies ist eine Aufgabe an borisbaer. Nicht vorsagen 😉
Hallo borisbaer,
> (ohne Fehlermeldung)
> Was übersehe ich?
Die Fehlermeldung. Da **muss** eine sein. Dein generiertes SQL ist in dem von Dir beschriebenen Schlecht-Fall definitiv falsch.
Und Du übersiehst, dass man grundsätzlich SQL Fehlercodes prüfen und im Fehlerfall das generierte SQL zusammen mit allen verfügbaren Fehlerinformationen loggen muss. Dann weißt Du, was faul ist. Wenn nicht, kann ein Blick ins SQL Handbuch lehrreich sein.
Fehlermeldungen kann es nach jedem API Aufruf geben. Aber vor allem nach dem execute()-Aufruf.
Nebenbei 1: In generiertem SQL sollte man Tabellen- und Spaltennamen in Backticks einschließen
Nebenbei 2: Du solltest auch keine Defaultwerte für $columns und $conditions vorgeben. Ein leeres Array dürfte für beide Parameter keinen Sinn ergeben. Du solltest statt dessen eine Abfrage einbauen, ob mindestens ein Eintrag drin ist.
_Rolf_
--
sumpsi - posui - obstruxi
Hallo borisbaer,
> (ohne Fehlermeldung)
> Was übersehe ich?
Die Fehlermeldung. Da **muss** eine sein. Dein generiertes SQL ist in dem von Dir beschriebenen Schlecht-Fall definitiv falsch.
Und Du übersiehst, dass man grundsätzlich SQL Fehlercodes prüfen und im Fehlerfall das generierte SQL zusammen mit allen verfügbaren Fehlerinformationen loggen muss. Dann weißt Du, was faul ist. Wenn nicht, kann ein Blick ins SQL Handbuch lehrreich sein.
Fehlermeldungen kann es nach jedem API Aufruf geben. Aber vor allem nach dem execute()-Aufruf.
Nebenbei 1: In generiertem SQL sollte man Tabellen- und Spaltennamen in Backticks einschließen
Nebenbei 2: Du solltest auch keine Defaultwerte für $columns und $conditions vorgeben. Ein leeres Array dürfte für beide Parameter keinen Sinn ergeben. Du solltest statt dessen eine Abfrage einbauen, ob mindestens ein Eintrag drin ist.
_Rolf_
--
sumpsi - posui - obstruxi
Update-Methode aktualisiert nicht die entsprechenden Spalten in der Datenbank (ohne Fehlermeldung)
bearbeitet von
Hallo alle - dies ist eine Aufgabe an borisbaer. Nicht vorsagen 😉
Hallo borisbaer,
> Was übersehe ich?
Du übersiehst, dass man grundsätzlich SQL Fehlercodes prüfen und im Fehlerfall das generierte SQL zusammen mit allen verfügbaren Fehlerinformationen loggen muss. Dann weißt Du, was faul ist. Wenn nicht, kann ein Blick ins SQL Handbuch lehrreich sein.
Nebenbei 1: In generiertem SQL sollte man Tabellen- und Spaltennamen in Backticks einschließen
Nebenbei 2: Du solltest auch keine Defaultwerte für $columns und $conditions vorgeben. Ein leeres Array dürfte für beide Parameter keinen Sinn ergeben. Du solltest statt dessen eine Abfrage einbauen, ob mindestens ein Eintrag drin ist.
_Rolf_
--
sumpsi - posui - obstruxi