Lors de l'utilisation de MySQLi pour exécuter des requêtes SQL, il est crucial de gérer efficacement les rapports d'erreurs. Dans l'extrait de code fourni, où la valeur de retour de la méthode stmt_init() est utilisée pour détecter les erreurs lors de la préparation SQL, un doute persistant surgit :
La valeur de retour de l'instruction préparer indique-t-elle uniquement des erreurs dans SQL préparation de l'instruction ou également des erreurs d'exécution ?
Pour élucider cela, envisagez la gestion alternative des erreurs suivante approche :
if($stmt_test->execute()) $errorflag=true;
Ce code vérifie les erreurs lors de l'exécution de l'instruction. Cependant, il n'est pas nécessaire de mettre en œuvre cette vérification supplémentaire car la valeur de retour de la méthode prepare() englobe à la fois les erreurs de préparation et d'exécution.
Pour garantir un rapport d'erreurs complet, il est conseillé d'ajouter la ligne suivante à votre code de connexion :
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Cela permet de signaler toutes les erreurs mysqli. En conséquence, vous pouvez éliminer le besoin de vérifier les valeurs de retour et d'écrire directement des instructions, comme le montre l'exemple suivant :
$stmt = $mysqli->prepare("INSERT INTO testtable VALUES (?,?,?)"); $stmt->bind_param('iii', $x, $y, $z); $stmt->execute();
En cas d'erreur à n'importe quel stade, une exception PHP sera levée . Cette exception peut être gérée ou signalée comme n'importe quelle autre erreur PHP. En configurant correctement le rapport d'erreurs PHP, vous pouvez vous assurer que les erreurs sont affichées à l'écran pendant le développement et enregistrées sur le serveur de production.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!