我的代码似乎运行正常(我没有收到任何错误),但 INSERT INTO 查询似乎不起作用,因为数据从未被放入数据库。
这是代码:
编辑:我稍微编辑了代码,所以它在逻辑上有意义,但它仍然没有将数据添加到表中。(我什至完全删除了 if 语句,只是保留了查询,它没有添加它。
<?php
//connect to user database
include("db_connect.php");
//set variables
$firstName = $_POST['firstName'];
$lastName = $_POST['lastName'];
$email = $_POST['email'];
$password = $_POST['password'];
$gender = $_POST['gender'];
$date = date('Y/m/d H:i:s a');
//check if email exists
$db_query = "SELECT * FROM users WHERE email LIKE '$email'";
$db_result = mysql_query($db_query);
if(!$db_result)
{
$query = "INSERT INTO users (lastName, firstName, email, password, gender, signup) VALUES ('$lastName', '$firstName', '$email', '$password', '$gender', '$date')";
mysql_query($query);
echo 'You have been successfully registered. Please <a href="login.php">Click Here</a> to log in.';
}
else {
echo 'That email is already in use. <a href="login.php">Click Here</a> to return to the sign up page.';
}
?>
您需要替换
if($email_taken)
跟
if(mysql_num_rows($email_taken))
我会说它更像是:
//check if email exists
$db_query = "SELECT * FROM users WHERE email='{$email}'";
$res = mysql_query($db_query);
$email_taken = mysql_num_rows($res);
if($email_taken == 1)
{
echo 'That email is already in use. <a href="login.php">Click Here</a> to return to the sign up page.';
}
else {
$query = "INSERT INTO users (lastName, firstName, email, password, gender, signup) VALUES ('$lastName', '$firstName', '$email', '$password', '$gender', '$date')";
mysql_query($query);
echo 'You have been successfully registered. Please <a href="login.php">Click Here</a> to log in.';
}