PHP准备语句错误

PHP准备语句错误,php,mysql,Php,Mysql,因此,当用户登录时,我试图更新我数据库中的一些内容,似乎一切都很好,除了最后一部分,我得到的输出是: “严重错误未知”和“命令不同步;您现在无法运行此命令” 这是我的密码: <?php $user = $_POST['username']; $pass = $_POST['password']; $connect = mysqli_connect("localhost","myuser","mypass","somedb"); $query = "SELECT `password` FRO

因此,当用户登录时,我试图更新我数据库中的一些内容,似乎一切都很好,除了最后一部分,我得到的输出是:

“严重错误未知”和“命令不同步;您现在无法运行此命令”

这是我的密码:

<?php
$user = $_POST['username'];
$pass = $_POST['password'];
$connect = mysqli_connect("localhost","myuser","mypass","somedb");
$query = "SELECT `password` FROM `userauth` WHERE `username`=?";
if($stmt = $connect->prepare($query)){
    $stmt->bind_param('s',$user);
    $stmt->execute();
    $stmt->bind_result($tmp_pass);
    $stmt->fetch();
    if($tmp_pass===$pass){
        $letters = array('a','b','*','x','e','d','z','p','@','#');
        $letter_key="";
        for($i=0;$i<sizeof($letters);$i++){
            $letter_key=$letter_key.$letters[rand(1,sizeof($letters-1))];
        }
        $key = rand(1341163,9999999);
        $key2 = rand(3541,9999);
        $complete_key = $key.$letter_key.$key2;
        setcookie("key",$complete_key);
        setcookie("user",$user);
        $query_auth = "UPDATE `userauth` SET `auth_key`=? WHERE `username`=?";
        if($stmt_2 = $connect->prepare($query_auth)){
            $stmt_2->bind_param('ss',$complete_key,$user);
            $stmt_2->execute();
        }else{
            echo "Critical error, unknown ".mysqli_error($connect);
            exit;
        }
        echo "success";
    }else{
        echo "Error Invalid Username or Password";
    }
}else{
    "Database link error";
}
?>


有人能解释一下可能是什么问题吗。是的,我的所有字段都是字符串。

在$stmt->fetch()之后尝试$stmt->close()

有关详细信息,请咨询
mysqli\u error()
。如果尚未检查可能的错误,请加上=>。在经过(可能的)失败之前不要假设成功。它说:命令不同步;您现在无法运行此命令请参阅上面的错误。如果这还不能回答问题,用谷歌搜索错误信息。如果可以的话,我会接受你的回答,因为我要等5分钟。请解释一下好吗?php.net有一个很好的解释:“关闭一个准备好的语句。mysqli_stmt_close()也会释放语句句柄。如果当前语句有挂起或未读的结果,此函数将取消它们,以便执行下一个查询。”Link