Estoy tratando de entender MySQli y estoy confundido por el informe de errores. estoy usando el valor de retorno de la MySQLi 'preparar' declaración para detectar errores en la ejecución de SQL, así:Declaraciones preparadas MySQLi error reporting
$stmt_test = $mysqliDatabaseConnection->stmt_init();
if($stmt_test->prepare("INSERT INTO testtable VALUES (23,44,56)"))
{
$stmt_test->execute();
$stmt_test->close();
}
else echo("Statement failed: ". $stmt_test->error . "<br>");
embargo, es el valor de retorno de la declaración preparar solamente detectar si hay un error en el preparación de la declaración SQL y no detectar errores de ejecución? Si es así debería, por tanto, cambiar de ejecutar la línea marcar los errores, así como esto:
if($stmt_test->execute()) $errorflag=true;
Y a continuación, sólo para estar seguro debería también hacer lo siguiente después de la instrucción se ha ejecutado:
if($stmt_test->errno) {$errorflag=true;}
. ... ¿Estaba OK para comenzar y el valor de retorno en la declaración MySQLi prepare captura todos los errores asociados con la ejecución completa de la consulta que define?
Gracias C
¿Por qué usan Preparar/Ejecutar() en lugar de la consulta() en el primer lugar cuando no hay una parte variable en su cadena de consulta? ¿O es esto solo un ejemplo simplificado? – VolkerK
Sí, lo siento. Se simplificó para mostrar cómo estaba teniendo dificultades para entender dónde obtener informes de errores definitivos de un staement preparado. – Columbo