Maison >base de données >tutoriel mysql >Pourquoi mon insert mysqli échoue-t-il malgré la réussite des points de contrôle de débogage ?

Pourquoi mon insert mysqli échoue-t-il malgré la réussite des points de contrôle de débogage ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-20 12:53:27320parcourir

Why is My mysqli Insert Failing Despite Passing Debug Checkpoints?

Insertion de données avec mysqli : dépannage d'un échec d'insertion

Ce programme tente d'insérer des données dans une base de données MySQL à l'aide de l'extension mysqli. Cependant, malgré le passage réussi des points de contrôle de débogage, les données ne sont pas ajoutées à la table.

Le problème réside dans la manière dont les variables sont liées à l'instruction préparée. Dans le code original, les variables $username et $password sont liées deux fois à l'aide de bind_param(). C'est incorrect. La syntaxe correcte consiste à transmettre les types de données suivis des variables en un seul appel à bind_param().

Pour résoudre ce problème, le code peut être modifié comme suit :

$stmt2->bind_param('ss', $username, $password);

Alternativement, si vous utilisez PHP 5.6 ou version ultérieure, le tableau de variables peut être passé à bind_param() en utilisant l'opérateur spread :

$data = ['username' => 'someUser', 'password' => 'secret'];
$stmt2->bind_param('ss', ...$data);

Une fois cette correction effectuée effectuée, la requête INSERT doit s'exécuter avec succès et insérer une nouvelle ligne dans la base de données.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn