Code Igniter-Fehler abfangen, die auf das einfügen von Daten (Active Record)
Ich bin das einfügen von Daten in meine Datenbank mit dem folgenden code:
$this->db->set('event_id', $event_id);
...
$this->db->set('creator_id', $creator_id);
$this->db->insert('event');
Wie kann ich sicherstellen, dass der Prozess erfolgreich war und dass der Nutzer eine Bestätigungs-Nachricht, sonst eine Fehlermeldung?
was ist die Ausgabe von
var_dump($this->db->insert('event'));
?InformationsquelleAutor lodhb | 2011-11-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
HM, IIRC die Methode gibt true zurück, wenn erfolgreich, so könnte man mit einem einfachen
Sonst kann man immer zählen, die betroffene Zeilen:
UPDATE nach Kommentar:
Ich glaube, Ihr drei insert_batch() sind auf drei verschiedene Tabellen, so dass eine überprüfung sollte sich auf jeden. Jedenfalls, was mir rätselhaft ist der Grund, hinten dieser check..Abfrage nicht nach dem Zufallsprinzip fehlschlagen: die Möglichkeit sollten Sie nie scheitern, und wenn Sie das tun, werden Sie wissen, durch Fehler (protokolliert oder angezeigt).
if($this->db->insert('event') && $this->db->insert_batch($arr1) && $this->db->insert_batch($arr2)){...}
Ich aktualisiert meine Antwort
Geklappt, danke!
Eine viel bessere Technik, wenn Sie verschiedene Einsätze auf unterschiedliche Tabellen wäre die Verwendung einer Transaktion. Diese können zurückgesetzt werden, wenn eine oder mehrere der Datenbank-Abfragen fehl. Für details, siehe ellislab.com/codeigniter/user-guide/database/transactions.html Dies wird alle Anstrengungen "eine Prüfung durchgeführt werden sollte und auf jedem", und führt in eine viel sauberere Lösung. Vielleicht Transaktionen, die nicht verfügbar waren, in der CI, als diese Frage gestellt wurde.
InformationsquelleAutor Damien Pirsy
", Wenn Sie brauchen, um den letzten Fehler, der aufgetreten ist, der error() Methode wird ein array zurückgeben, mit seinem code und Botschaft."
https://www.codeigniter.com/userguide3/database/queries.html
InformationsquelleAutor TV-C-15