MySQLi&;mysql\u real\u escape\u string()给了我一大堆错误

MySQLi&;mysql\u real\u escape\u string()给了我一大堆错误,string,mysqli,escaping,String,Mysqli,Escaping,我的更新代码有问题,因为我是新来php的,所以我试图用我的更新命令找出问题所在。这是我的代码行。我的insert和delete命令很好用,但这个命令让我头痛了4个小时 <?php include 'includes/conn.php'; if($_POST){ //write query $sql = "UPDATE

我的更新代码有问题,因为我是新来php的,所以我试图用我的更新命令找出问题所在。这是我的代码行。我的insert和delete命令很好用,但这个命令让我头痛了4个小时

<?php
            
            include 'includes/conn.php';
            if($_POST){
                    //write query
                    $sql = "UPDATE 
                                            member 
                                    SET
                                            fname = ?, 
                                            lname = ?,
                                            mname = ?,
                                            email = ?,
                                            address = ?,
                                            gender = ?,
                                            contact = ?,
                                            email = ?,
                                            username = ?,
                                            password  = ?
                                    WHERE 
                                            mem_id = ?";

                    $stmt = $mysqli->prepare($sql);
                    $stmt->bind_param(
                            'sssssssssi', 
                            $_POST['fname'], 
                            $_POST['lname'],
                            $_POST['mname'],
                            $_POST['email'],
                            $_POST['address'],
                            $_POST['gender'],
                            $_POST['contact'],                              
                            $_POST['username'],
                            $_POST['password'],
                            $_POST['mem_id']
                    );


                    if($stmt->execute()){
                            echo "User was updated.";
                            $stmt->close();
                    }else{
                            die("Unable to update.");
                    }
            }
                         $sql = "SELECT 
                                fname, lname, mname, email, address, gender, contact,    username, password, mem_id
                        FROM 
                                member
                        WHERE 
                                mem_id = \"" . $mysqli->real_escape_string($_GET['mem_id']) . "\"
                        LIMIT 
                                0,1";

                        $result = $mysqli->query( $sql );

                        $row = $result->fetch_assoc();
                        extract($row);

                        $result->free();
                        $mysqli->close();
                        ?>

希望你们能帮我解决这个问题

未定义索引:第134行C:\xampp\htdocs\prjTheVillagePlaygroup\execute_editmenu.php中的mem_id

警告:extract()要求参数1为数组,在第141行的C:\xampp\htdocs\prjTheVillagePlaygroup\execute_editmenu.php中给出空值

你有

email = ?
在update语句中列出两次。删除第二个

请注意,您的绑定不必更改。删除后,它将具有正确数量的参数

另外,您使用的是
$\u GET['mem\u id']
,可能是
$\u POST['mem\u id']
——所有其他变量都设置为
$\u POST

关于
警告:extract()预期参数1为数组,如果给定为null,这是由于查询失败

检查$result以确保查询成功以及错误是什么:

$result = $mysqli->query( $sql );
if (!$result) 
    printf("Error: " . mysqli->error); // or use die("Error: " . mysqli->error)
}


$row = $result->fetch_assoc();
extract($row);

查询中占位符的数量与您在
$stmt->bind_param()
中使用的参数数量不匹配。您在查询中使用了两次
email
。对于这篇帖子,我感到非常抱歉,但仍然没有睡好觉(Krister Andersson,已经检查并删除了额外的电子邮件,但仍然没有关于它给我的错误的线索。mseifert先生,但已经删除了它,但错误仍然与C:\xampp\htdocs\prjTheVillagePlaygroup\execute\u editmenu.php中的未定义索引:mem_id在第134行警告:extract()预期参数1为数组,在C:\xampp\htdocs\prjTheVillagePlaygroup\execute\u editmenu.php的第141行中为空。错误总是在这一部分触发-->mem\u id=\”。$mysqli->real\u escape\u string($\u GET['mem\u id'])。“\”感谢所有帮助。!您正在使用
$\u GET['mem id'
可能是
$\u POST['mem id']
-所有其他变量都用
$\u POST设置