Home > Backend Development > PHP Problem > What should I do if PHP fails to modify database data?

What should I do if PHP fails to modify database data?

藏色散人
Release: 2023-03-17 06:40:01
Original
1559 people have browsed it

Solution for unsuccessful modification of database data in php: 1. Open the corresponding PHP file; 2. Obtain the user account and password and connect to the database; 3. Use the username variable to modify the data in the data table; 4. View Error message; 5. Check whether $db is connected correctly and modify it; 6. Check whether the table field name involved in sql in the prepare method is incorrect and modify it correctly.

What should I do if PHP fails to modify database data?

The operating environment of this tutorial: Windows 7 system, PHP version 8.1, Dell G3 computer.

What should I do if php fails to modify the database data?

Problem description:

PHP cannot modify the database data

I have been stuck in ERROR for a whole day, please help me.
The core error report is as shown in the figure:

What should I do if PHP fails to modify database data?

The complete code is here:

<?php 
header(&#39;Content-Type:textml;charset=utf-8&#39;); $username=&#39;游客&#39;; 
//获取用户输入的账号和密码并连接数据库 
$account=$_POST[&#39;account&#39;]; $password=$_POST[&#39;password&#39;]; 
$db=new mysqli(&#39;localhost&#39;,&#39;root&#39;,&#39;12345678&#39;,&#39;newsmanage&#39;); 
//查询数据库是否已经有相同账号 
$query1=$db->prepare("SELECT account FROM user"); 
$query1->bind_result($theaccount); $query1->execute(); 
while($query1->fetch()) { if ($account == $theaccount) { echo &#39;<script>alert("该账号已被注册!");
location.href="register.html"</script>&#39;; exit(); } } 
//将用户输入的账号和密码写入数据库 
$add=$db->prepare("INSERT INTO user VALUES (null,&#39;general&#39;,null,?,?)"); 
$add->bind_param(&#39;ss&#39;,$account, $password); $add->execute(); 
//数据库对添加的新用户自动生成唯一ID,查寻此ID并赋值变量 
$query2=$db->prepare("SELECT userid FROM user WHERE account=&#39;$account&#39;"); 
$query2->bind_result($userid); $query2->execute(); $query2->fetch(); 
//用username变量修改数据表中的数据 
$edit=$db->prepare("UPDATE user SET username=? WHERE account=?"); 
$edit->bind_param(&#39;ss&#39;,$username,$account); $edit->execute(); 
//报错提示:Call to a member function bind_param() on boolean in echo &#39;<script>alert("恭喜您,注册成功!");
location.href="../login/login.html"</script>&#39;;
Copy after login

Problem analysis:

The error message has made it very clear, saying that you used a member function on a bool value. This error message indicates that your $db->prepare() method failed to execute and returned false instead of the mysqli_stmt object. Please confirm whether $db is connected correctly and whether the table field names involved in the sql in the prepare method are incorrect. and other questions that I can't think of at the moment. . .

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of What should I do if PHP fails to modify database data?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template