SQL - 未插入数据,没有错误

时间:2017-08-17 23:27:54

标签: php mysql

我有一个SQL表格表来处理我网站的成员列表。但是,在注册新用户时,数据不会插入表中。由于我在整个代码中检查了几次错误,因此没有显示任何错误。

if (empty($error_msg)) {

        // Create hashed password using the password_hash function.
        // This function salts it with a random salt and can be verified with
        // the password_verify function.
        $password = password_hash($password, PASSWORD_BCRYPT);

        // Insert the new user into the database 
        if ($insert_stmt = $mysqli->prepare("INSERT INTO members (username, email, password) VALUES (?, ?, ?)")) {
            $insert_stmt->bind_param('sss', $username, $email, $password);

            // Execute the prepared query.
            if (!$insert_stmt->execute()) {
                header('Location: ./error.php?err=Registration failure: INSERT');
            }

            header('Location: ./register_success.php?');
        }
    }

代码执行到最后,我被重定向到register_success。 我知道这不是因为我在我的代码中输入了错误的数据库凭据,我使用相同的凭据将数据发送到同一个数据库(它们保存在另一个文件中)并且它可以工作完全没问题。

编辑: 删除第二个"标题"正如Nick Coons所说,我被重定向到了错误页面,这意味着执行存在问题。不过,我还不知道为什么......

1 个答案:

答案 0 :(得分:1)

您将需要使用the documentation on this page来确定SQL错误是什么(如果有)。

此外,如果出现错误,您将执行header()函数两次,并且第二个实例将覆盖第一个(因为您只能发送一个“位置”标题),因此它将无论如何,都会重定向到您的成功页面。我建议您在header()语句的else条款中添加第二个if来电,或在第一次拨打exit()后添加header(),这样只有一个或者另一个执行。