2010-07-13 9 views
15

Ho un'app Codeigniter (utilizzando la versione 2.1.0) che sta scrivendo una transazione in un database mysql. Sono abbastanza sicuro di aver riscontrato un errore di vincolo di chiave esterna, ma non riesco a trovare alcun modo per far capire all'IC l'errore specifico. mysql_error() torna vuoto.Sotto Codeigniter, è possibile vedere mysql_error()?

Qualcuno può dirmi come ottenere Codeigniter per dirmi il messaggio di errore mysql?

risposta

2

Si può essere in grado di utilizzare call_function nella classe db per accedere mysql_error:

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

Naturalmente, si potrebbe anche basta accendere la bandiera di debug nella configurazione DB, a dire CI da visualizzare errori DB:

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

db_debug - VERO/FALSO (Boolean) - Sia che venga errori di database er dovrebbero essere visualizzati.

+0

Quando tento di usare CALL_FUNCTION ('mysql_error'), ottengo il seguente: "Questa funzione non è disponibile per il database che si sta utilizzando ". È una tabella innodb sotto mysql. Ho $ db ['default'] ['db_debug'] = TRUE nel file di configurazione database.php. Il massimo che ottengo è la mia eccezione e una traccia dello stack. Questo è così frustrante. In questo momento, mi sento come se andare con la CI fosse un grosso errore. – pbarney

+0

@pbarney non arrendersi ancora, controlla la mia risposta – DRL

+1

Inoltre, come menzionato sulla pagina 'call_function', dovresti passare il nome della funzione ** senza ** il prefisso' mysql_'. – Amber

35

Sì, questo è il wrapper mysql_error().

$this->db->_error_message(); 

E l'involucro mysql_errno è:

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

Nella versione corrente di CI, quelle sono funzioni private. Qualche suggerimento sul modo migliore per accedervi con la modifica dei file principali? – pbarney

+0

Non capisco, voglio dire come usarlo. Ho provato ma non ho trovato nulla in mostra. @DRL –

+0

ho questo -> Chiama al metodo non definito CI_DB_mysqli_driver :: _ error_number(). sto usando php 5.6 –

Problemi correlati