2010-07-13 12 views
15

Tengo una aplicación Codeigniter (que utiliza la versión 2.1.0) que está escribiendo una transacción en una base de datos mysql. Estoy bastante seguro de que tengo un error de restricción de clave externa, pero no encuentro forma de que CI me diga el error específico. mysql_error() vuelve vacío.En Codeigniter, ¿es posible ver mysql_error()?

¿Alguien puede decirme cómo obtener Codeigniter para que me diga el mensaje de error mysql?

Respuesta

2

Usted puede ser capaz de utilizar call_function en la clase DB para acceder a mysql_error:

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

Por supuesto, también se puede simplemente encender el indicador de depuración en la configuración DB, a decir CI para mostrar errores DB:

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

db_debug - TRUE/FALSE (booleano) - Wheth Los errores de la base de datos er deben mostrarse .

+0

Cuando intento utilizar call_function ('mysql_error'), me sale el siguiente: "Esta función no está disponible para la base de datos que está utilizando " Es una tabla innodb en mysql. Tengo $ db ['default'] ['db_debug'] = TRUE en el archivo de configuración database.php. Lo que más obtengo es mi excepción y un seguimiento de la pila. Esto es muy frustrante. En este momento, tengo ganas de ir con CI fue un gran error. – pbarney

+0

@pbarney no se rinda aún, verifique mi respuesta – DRL

+1

También tenga en cuenta que, como se menciona en la página 'call_function', se supone que debe pasar el nombre de la función ** sin ** el prefijo' mysql_'. – Amber

35

Sí, esta es la envoltura mysql_error().

$this->db->_error_message(); 

Y el envoltorio mysql_errno es:

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

En la versión actual de CI, esas son funciones privadas. ¿Alguna sugerencia sobre la mejor manera de acceder a ellos modificando los archivos centrales? – pbarney

+0

No entiendo esto, me refiero a cómo usarlo. Intenté pero no conseguí nada en la pantalla. @DRL –

+0

tengo esto -> Llamada al método no definido CI_DB_mysqli_driver :: _ error_number(). estoy usando php 5.6 –

Cuestiones relacionadas