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