警告:mysql_fetch_assoc():提供的参数不是有效的MySQL结果资源22

时间:2014-08-10 21:41:19

标签: php mysql

我不明白为什么会收到此错误:

  

警告: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']}'"));

2 个答案:

答案 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()扩展。