2010-07-13 10 views
15

Ich habe eine Codeigniter-App (mit der Version 2.1.0), die eine Transaktion in eine MySQL-Datenbank schreibt. Ich bin mir ziemlich sicher, dass ein Fremdschlüssel-Constraint-Fehler aufgetreten ist, aber ich kann keine Möglichkeit finden, CI dazu zu bringen, mir den spezifischen Fehler mitzuteilen. mysql_error() kommt leer zurück.Unter Codeigniter, ist es möglich, mysql_error() zu sehen?

Kann jemand mir sagen, wie man Codigniter bekommt, um mir die mysql Fehlermeldung zu sagen?

Antwort

2

Sie können möglicherweise call_function in der db-Klasse verwenden mysql_error zuzugreifen:

http://ellislab.com/codeigniter/user-guide/database/call_function.html

Natürlich könnten Sie auch auf der Debug-Flag in der DB Config schalten Sie einfach, CI zu sagen anzuzeigen db Fehler:

http://ellislab.com/codeigniter/user-guide/database/configuration.html

db_debug - WAHR/FALSCH (boolean) - Wheth Er Datenbankfehler sollte angezeigt werden.

+0

Wenn ich versuche, call_function zu verwenden ('mysql_error'), erhalte ich folgendes: „Diese Funktion für die Datenbank nicht verfügbar ist Sie verwenden . " Es ist eine innodb Tabelle unter mysql. Ich habe $ db ['default'] ['db_debug'] = TRUE in der Konfigurationsdatei database.php. Am meisten bekomme ich meine Ausnahme und eine Stapelverfolgung. Das ist so frustrierend. Gerade jetzt, ich habe das Gefühl, mit CI zu gehen, war ein großer Fehler. – pbarney

+0

@pbarney gib es noch nicht auf, überprüfe meine Antwort – DRL

+1

Beachten Sie auch, wie auf der Seite 'call_function' erwähnt, dass Sie den Namen der Funktion ** ohne das Präfix' mysql_' übergeben sollen. – Amber

35

Ja, das ist der mysql_error() - Wrapper.

$this->db->_error_message(); 

Und die mysql_errno Wrapper:

$this->db->_error_number(); 
+0

In der aktuellen Version von CI sind dies private Funktionen. Haben Sie Vorschläge, wie Sie die Kerndateien am besten ändern können? – pbarney

+0

Ich verstehe das nicht, ich meine, wie man es benutzt. Ich habe versucht, aber nichts im Display bekommen. @ DRL –

+0

ich habe dies -> Aufruf an undefinierte Methode CI_DB_mysqli_driver :: _ error_number(). Ich benutze PHP 5.6 –

Verwandte Themen