Fatal error Call to undefined method mysqli error()
Fatal error Call to undefined method mysqli error() . En este artículo veremos cómo dar solución a este común error de PHP por la mala implementación del script. Se conecta con total normalidad a la base de datos, pero a la hora de ejecutar la consulta de ingresar nuevo registro, muestra la siguiente leyenda de error.
Fatal error Call to undefined method mysqli error()
Código que muestra error.
<?php //Datos de conexión a la base de datos $host = 'localhost'; $basedatos = 'peru'; $usuario= 'root'; $contrasena= 'root'; // Abrir conexion $conexion = new mysqli($host, $usuario, $contrasena, $basedatos); //Revisar conexion if (mysqli_connect_errno()) { printf("Conexion fallida: %s\n", mysqli_connect_error()); exit(); } $stmt = $conexion->stmt_init(); // sql consulta $consulta = "INSERT INTO lista ('nombre','apellido','curso') VALUES (?, 1, ?)"; // Crear una declaración $stmt = $conexion->prepare($consulta) or die($conexion->error()); ?>
Para los que llegaron a esta página por este error. y les salía la siguiente leyenda en su archivo PHP. El error que usted muestra es.
Fatal error: Call to undefined method mysqli::error()
Esto es porque necesitamos acceder al error como variable no como función, veamos un ejemplo de cómo aplicar dicho cambio. El código correcto es el siguiente.
Paso #01 Solución: Colocando como variable
<?php //Datos de conexión a la base de datos $host = 'localhost'; $basedatos = 'basedatos'; $usuario= 'root'; $contrasena= 'root'; // Abrir conexion $db = new mysqli($host, $usuario, $contrasena, $basedatos); //Revisar conexion if (mysqli_connect_errno()) { printf("Conexion fallida: %s\n", mysqli_connect_error()); exit(); } $stmt = $db->stmt_init(); // sql consulta $consulta = "INSERT INTO login (nombre,apellido,curso) VALUES ('Juan', 'Flores','Photoshop')"; // Crear una declaración $stmt = $db->prepare($consulta); // Añadimos una condicional para la insercion de registros if ($db->query($consulta) === TRUE) { echo "Nuevo registro creado"; } else { echo "Error: " . $consulta . "<br>" . $db->error; } // Reestructurando al mensaje de error if(! empty( $db->error ) ){ echo $db->error; // no funcion para llamar al error } ?>
Aquí la solución de este inconveniente en la programación PHP a la hora de insertar registros a la base de datos.
// Reestructurando al mensaje de error if(! empty( $db->error ) ){ echo $db->error; // no funcion para llamar al error }
Espero que este pequeño artículo les aya servido de mucho.
Referencia