Maison >base de données >tutoriel mysql >Pourquoi mon insertion MySQLi échoue-t-elle malgré la réussite de toutes les vérifications de débogage ?

Pourquoi mon insertion MySQLi échoue-t-elle malgré la réussite de toutes les vérifications de débogage ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-15 17:55:02291parcourir

Why is My MySQLi Insertion Failing Despite Passing All Debug Checks?

Insertion de données à l'aide de MySQLi

Ce code semble exécuter toutes les vérifications de débogage, mais il ne parvient pas à insérer de nouvelles données dans la base de données. Analysons-le étape par étape.

Le code tente de vérifier si le "nom d'utilisateur" existe déjà dans la table "UserData". Sinon, il essaie d'ajouter une nouvelle ligne. Cependant, il rencontre un problème lors de la partie insertion.

Identification du problème

Le problème réside dans la manière dont les paramètres de liaison sont déclarés pour l'instruction d'insertion. Au lieu de transmettre plusieurs fois des variables individuelles (par exemple, $username, $password deux fois), elles doivent être transmises avec leurs types correspondants.

Solution

La fonction bind_param s'attend à ce que les types de variables précèdent les variables elles-mêmes. Par conséquent, la bonne façon de lier les paramètres est :

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

Alternativement, si vous utilisez PHP 5.6 ou version ultérieure, vous pouvez simplifier cela en utilisant l'opérateur spread (...) :

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

Une fois les paramètres correctement liés, l'insertion devrait réussir. Notez que le code fourni dans votre question contient des commentaires potentiellement déroutants ou inutiles ; il est recommandé de les supprimer pour plus de clarté.

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