【发布时间】: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错误。