데이터베이스 데이터의 PHP 수정 실패에 대한 해결 방법: 1. 해당 PHP 파일을 엽니다. 2. 사용자 계정과 비밀번호를 얻고 데이터베이스에 연결합니다. 3. 사용자 이름 변수를 사용하여 데이터 테이블의 데이터를 수정합니다. 에러 메시지를 확인하세요. 5. $db가 올바르게 연결 및 수정되었는지 확인하세요. 6. prepare 메소드에 포함된 테이블 필드 이름이 잘못된지 확인하고 올바르게 수정하세요.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, Dell G3 컴퓨터.
PHP가 데이터베이스 데이터를 수정하지 못하면 어떻게 해야 하나요?
문제 설명:
PHP에서 데이터베이스 데이터를 수정할 수 없습니다.
오류 오류 보고가 하루 종일 멈췄습니다. 도와주세요.
핵심 오류 보고는 그림과 같습니다.
The 완전한 코드는 여기 있습니다:
<?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>';
문제 분석:
오류 메시지는 부울 값에 멤버 함수를 사용했다는 것을 매우 명확하게 보여줍니다. 이 오류 메시지는 $db->prepare() 메소드가 실행에 실패하고 mysqli_stmt 객체 대신 false를 반환했음을 나타냅니다. $db가 제대로 연결되었는지, prepare 메소드의 sql에 포함된 테이블 필드명이 잘못된지 확인해주세요. 그리고 지금은 생각나지 않는 다른 질문들. . .
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP가 데이터베이스 데이터를 수정하지 못하면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!