因此,我试图做一些应该看起来可能是一个非常简单的平凡任务。我正在尝试检查我的数据库中的电子邮件地址。我不知道我是否在正确的轨道上,有人可以把我拉出来吗?
$query = "SELECT * FROM 68_users WHERE email= $email";
if($result = mysqli_query($link, $query) == $email) {
echo 'Email has been registered';
}else{
$query = "INSERT INTO 68_users (email,pass,old_pass,first_name,last_name,dob,gender,phone,fanmail)
VALUES ('$email',AES_ENCRYPT('$pass', 'something'),AES_ENCRYPT('$pass', 'something'),'$first_name','$last_name','$dob','$gender','$phone','$fanmail')"
or die(mysqli_error());
if ( !mysqli_query($link, $query) ) {
echo 'error: '.mysqli_error($link);
exit();
}
}
mysqli_close($link);
}
谢谢大家的帮助。我需要弄清楚php的调试情况。现在我在我的网站上写eclipse和调试,非常恶化..这就是我用过的:
$query = "SELECT * FROM 68_users WHERE email= '$email'";
$result = mysqli_query($link, $query);
if($result->num_rows > 0) {
echo 'This email has previously been registered';
}else{
$query = "INSERT INTO 68_users (email,pass,old_pass,first_name,last_name,dob,gender,phone,fanmail)
VALUES ('$email',AES_ENCRYPT('$pass', 'something'),AES_ENCRYPT('$pass', 'something'),'$first_name','$last_name','$dob','$gender','$phone','$fanmail')"
or die(mysqli_error());
if ( !mysqli_query($link, $query) ) {
echo 'error: '.mysqli_error($link);
exit();
}
header( 'Location: http://www.example.com/html/thankyou.html' ) ;
}
答案 0 :(得分:2)
此查询将失败,因为您需要围绕电子邮件变量的撇号。您也可以简单地运行查询并查看返回的行数:
$query = "SELECT * FROM 68_users WHERE email= '$email'";
$result = mysqli_query($link, $query);
if($result->num_rows > 0) {
echo 'Email has been registered';
}else{
// ....
}
答案 1 :(得分:1)
变量quotes
,
$email
$query = "SELECT * FROM 68_users WHERE email= '$email'";
您需要查看其余代码的结果,以了解其他所有代码是否正常。
答案 2 :(得分:1)
在不知道当前代码的结果的情况下,我可以发现的一个问题是,您希望确保将查询语句的单引号中的电子邮件值括起来,以确保对其进行正确评估:
$query = "SELECT * FROM 68_users WHERE email='$email'";
在执行查询时省略引号将导致错误,这取决于您的详细处理,可能会也可能不会明显。另外一点,这将是基本调试发挥作用的地方,这是所有程序员的基础。
删除电子邮件的相等性检查,因为您的查询语句已经为您执行了此操作。如果没有返回任何行,则它将返回false并触发else语句:
$query = "SELECT * FROM 68_users WHERE email='$email'";
if($result = mysqli_query($link, $query)) {
// Registered
}else{
// Not Registered
}
答案 3 :(得分:0)
$query = "SELECT * FROM 68_users WHERE email= '$email'";
还会返回一个值数组,您的“if($ result ... == $ email)”将失败。
* var_dump($ result)*查看从查询中返回的内容。