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 ?
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!