【问题标题】:Data not save to the database数据不保存到数据库
【发布时间】:2019-04-17 07:04:09
【问题描述】:

我想将表单数据保存到数据库。我在 url 中收到一条成功消息。但是数据没有保存到数据库中。 mysqli_stmt_execute($stmt); 似乎没有被执行。谁能解释一下下面的代码错误?

if (isset($_POST['register-submit'])) {
    $firstname = $_POST['firstname'];
    $lastname = $_POST['lastname'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $type = $_POST['utype'];

    $sql = "INSERT INTO `users`(`idroles`, `user_email`, `first_name`, `last_name`, `password`) VALUES((SELECT `idroles` FROM `roles` WHERE `name`= $type), ?, ?, ?, ?)";
    $stmt = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmt, $sql)) {
        header("Location../View/login_register.php");
        exit();
    } else if (mysqli_stmt_prepare($stmt, $sql)) {
        $hashpwd = password_hash($password, PASSWORD_DEFAULT);
        mysqli_stmt_bind_param($stmt, "ssss", $firstname, $lastname, $email, $hashpwd);
        mysqli_stmt_execute($stmt);
        header("Location:../View/login_register.php?success");
        exit();
    }
}

【问题讨论】:

  • 不要这样做if( !foo() ) {…} else if( foo() ) {…},你在这里不必要地调用了两次相同的函数。
  • 您的代码看起来不错。阅读this并在问题中发布sql错误。

标签: php database mysqli


【解决方案1】:

您可以通过这样做检查mysqli_stmt_execute是否成功:

if(mysqli_stmt_execute($stmt)) {
    header("Location:../View/login_register.php?success");
    exit();
} else {
    echo mysqli_error($conn);
    exit();
}

【讨论】:

    猜你喜欢
    • 2018-05-12
    • 1970-01-01
    • 2017-06-16
    • 2015-07-21
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 2021-10-27
    相关资源
    最近更新 更多