【发布时间】:2015-06-23 13:03:43
【问题描述】:
我有一个简单的 PHP 文件,我在其中使用以下代码检查用户的电子邮件是否存在于我的数据库中:
$query = "SELECT * FROM userData WHERE email = '$email'";
$result = mysql_query($query);
当用户输入数据库中的电子邮件地址时,它工作得非常好,但是,当我想确定这个 $query 是 null 还是空时 - 我不确定是哪一个。
当我输入不在数据库中的电子邮件并在下面添加以下代码时:
if(is_null($result)){
echo 'email not in database';
}
{} 中的代码未执行。
我只是想知道你能不能帮帮我。
你好,
很抱歉重复了另一个帖子。我使用以下方法纠正了它:
if(mysqli_num_rows($result) > 0)
{
// a row with email exists
}
else
{
// no row with particular email exists
}
【问题讨论】:
-
mysql_query返回执行的查询资源。您必须从资源中获取数据或为此计算行数。 -
强制性don't use mysql_* 功能,特别是如果您是新手 :),现在换成更好的东西,以后省去几个小时的头痛
-
只是一个警告,这很容易受到SQL injection的影响
-
is_null和empty之间有很大的不同,尤其是在 MySQL 和 SELECT all 中。你要找的是mysql_num_rows()或COUNT()。