我不明白为什么会收到此错误:
警告:mysql_fetch_assoc():提供的参数不是有效的MySQL 结果资源
我的代码是:
$alreadyMember = mysql_fetch_assoc(mysql_query("SELECT id FROM members WHERE emailAddress='{$_SESSION['register']['email']}'"));
我也在这里收到错误:
$alreadyRegistered = mysql_fetch_assoc(mysql_query("SELECT confirm_code FROM memberstemp WHERE emailAddress='{$_SESSION['register']['email']}'"));
答案 0 :(得分:1)
如果mysql_query()
失败,则返回FALSE
而不是MySQL结果资源。
所以基本上mysql_query()
失败了,你将FALSE
传递给mysql_fetch_assoc()
而不是你想要的资源。
您必须单独运行mysql_query()
,并在继续之前检查它是否返回FALSE
,在这种情况下,您打印mysql_error()
以了解问题所在。
答案 1 :(得分:0)
最好将查询和结果提取分开,以便于调试并防止出现不必要的错误,例如:
$query = "SELECT id FROM members WHERE emailAddress='{$_SESSION['register']['email']}'";
$result = mysql_query($query) or die("Error : ".mysql_error.__LINE__);
if ($result) // Test if result has no error
{
$alreadyMember = mysql_fetch_assoc($result);
}
但是,强烈建议您使用PDO使用预准备语句来阻止sql injection而不是简单的mysql()
扩展。