【发布时间】:2013-01-18 15:42:01
【问题描述】:
可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
//define variable to check the number of rows where the sql query is true to find out if the username or password are already in use
$EmailCheck = mysql_query("SELECT `Email` FROM `Customer` WHERE `Email` = '$RegCusEmail'");
$UserCheck = mysql_query("SELECT `Username` FROM `Customer` WHERE `Username` = '$RegCusUser'");
//checks if emails in use
if (mysql_num_rows($EmailCheck) != 0)
{
echo '<p id="error">The Email address you have entered is already in use.<p>';
}
//checks if username is in use
elseif (mysql_num_rows($UserCheck) != 0)
{
echo '<p id="error">The username you have entered is already in use.<p>';
}
上面的代码应该在数据库中搜索注册人的电子邮件和用户名,如果它们已经存在,则告诉用户使用不同的,但是当我使用它时出现此错误?
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in (file directory) on line 56 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in (file directory) on line 62
【问题讨论】:
-
像本网站上的 6 kazjillion 其他问答一样,带有完全相同的错误消息:您的查询失败,您盲目地假设它们成功,现在它们已经失败,您没有需要清理的错误处理混乱。
-
请不要使用
mysql_*函数编写新代码。它们不再维护,社区已经开始deprecation process。看到 red box 了吗?相反,您应该了解prepared statements 并使用PDO 或MySQLi。 -
我在 phpmyadmin 中检查了查询,它的工作原理是测试它们是否工作的有效方法,或者如果可以,我是否需要修复它们?
-
@user1990909 你确实连接到数据库对吗?我没有看到您在哪里连接和/或选择了正确的数据库。我知道这可能只是一个 sn-p 所以你可能在这里省略了它,但我只是在检查你是否确实在实际代码中连接到了数据库。
标签: php sql registration