Maison > Article > développement back-end > Que dois-je faire si PHP ne parvient pas à modifier les données de la base de données ?
Solutions en cas d'échec de la modification PHP des données de la base de données : 1. Ouvrez le fichier PHP correspondant ; 2. Obtenez le compte utilisateur et le mot de passe et connectez-vous à la base de données ; 3. Utilisez la variable de nom d'utilisateur pour modifier les données dans la table de données ; Vérifiez le message d'erreur : 5. Vérifiez si $db est correctement connecté et modifié. 6. Vérifiez si les noms de champs de table impliqués dans SQL dans la méthode de préparation sont incorrects et modifiez-les correctement.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur Dell G3.
Que dois-je faire si PHP ne parvient pas à modifier les données de la base de données ?
Description du problème :
PHP ne peut pas modifier les données de la base de données
Bloqué dans le rapport d'erreurs d'ERREUR pendant une journée entière, aidez-moi s'il vous plaît
Le rapport d'erreurs principal est comme indiqué dans l'image :
Le le code complet est ici :
<?php header('Content-Type:textml;charset=utf-8'); $username='游客'; //获取用户输入的账号和密码并连接数据库 $account=$_POST['account']; $password=$_POST['password']; $db=new mysqli('localhost','root','12345678','newsmanage'); //查询数据库是否已经有相同账号 $query1=$db->prepare("SELECT account FROM user"); $query1->bind_result($theaccount); $query1->execute(); while($query1->fetch()) { if ($account == $theaccount) { echo '<script>alert("该账号已被注册!"); location.href="register.html"</script>'; exit(); } } //将用户输入的账号和密码写入数据库 $add=$db->prepare("INSERT INTO user VALUES (null,'general',null,?,?)"); $add->bind_param('ss',$account, $password); $add->execute(); //数据库对添加的新用户自动生成唯一ID,查寻此ID并赋值变量 $query2=$db->prepare("SELECT userid FROM user WHERE account='$account'"); $query2->bind_result($userid); $query2->execute(); $query2->fetch(); //用username变量修改数据表中的数据 $edit=$db->prepare("UPDATE user SET username=? WHERE account=?"); $edit->bind_param('ss',$username,$account); $edit->execute(); //报错提示:Call to a member function bind_param() on boolean in echo '<script>alert("恭喜您,注册成功!"); location.href="../login/login.html"</script>';
Analyse du problème :
Le message d'erreur est très clair, indiquant que vous avez utilisé une fonction membre sur une valeur booléenne. Ce message d'erreur indique que votre méthode $db->prepare() n'a pas pu s'exécuter et a renvoyé false au lieu de l'objet mysqli_stmt. Veuillez confirmer si $db est correctement connecté et si les noms de champs de table impliqués dans le SQL dans la méthode de préparation sont incorrects. et d'autres questions auxquelles je ne peux pas penser pour le moment. . .
Apprentissage recommandé : "Tutoriel vidéo PHP"
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!