所以,当我想检索数据并检查它,即电子邮件已存在的回声已经注册。该部分工作正常,但插入相同的数据不起作用。我的条件是不正确的命令? (故意留出值的dbhostname ID PW变量)从数据库中检索数据,但不会插入?
$dbname = "hw2";
$link = mysqli_connect($dbhostname, $dbuserid, $dbpassword, $dbname);
$firstname = $_POST["signup-firstname"];
$lastname = $_POST["signup-lastname"];
$email = $_POST["signup-email"];
$password = $_POST["signup-password"];
$repassword = $_POST["signup-repassword"];
if ($password != $repassword){
echo "<br><h3>Passwords did not match. <br>Please try again.</h3>";
}
else {
$ret_email = "SELECT * FROM hw2 WHERE email = '$email'";
$result = mysqli_query($link, $ret_email);
$num_rows = mysqli_num_rows($result);
if ($num_rows > 0){
echo "This email is already registered.";
}
else{
$insert_query = "INSERT INTO hw2 (firstname, lastname, email, password, repassword) VALUES ('$firstname', '$lastname', '$email', '$password', '$repassword')";
echo "$insert_query";
}
}
?>
你有意离开了实际mysqli_query()调用以及:) ?那里回来了什么?您是否使用数据库客户端尝试了查询(因为您正在回显该查询)以跳过PHP步骤?如果它在数据库客户端工作,它可能会告诉你的东西。 –
也许这是我对mysqli知识的缺乏,但它看起来并不像执行'$ insert_query'。你将它定义为一个字符串,然后回显它,而不用运行它。 – Santi
只是一个观察/警告 - 请注意你通过创建这样的动态sql命令打开自己的SQL注入攻击 - 考虑有人输入电子邮件值'; drop table hw2;'或类似的。 –