-1

可能重复:
PHP 错误:mysql_fetch_array() 期望参数 1 是资源,给定布尔值

对于下面在 php 中提到的代码,我收到以下错误:


警告:mysql_fetch_assoc() 期望参数 1 是资源,布尔值在第62行的/Users/pubs/Sites3/parse/includes/parseAuthorSearch.php中给出警告:mysql_fetch_assoc() 期望参数 1 是资源,布尔值在/Users/中给出pubs/Sites3/parse/includes/parseAuthorSearch.php在第62行


function findExactAuthorMatch($firstname, $lastname)
{
    $query22 = "SELECT COUNT(*) FROM authors WHERE lastname='".$lastname."' AND firstname='".$firstname."'";    
    $result22 = mysql_query($query22);
    $count22 = mysql_fetch_assoc($result22);
    if($count22 == 0) return false;
    else return true;
}
4

4 回答 4

1

您的查询错误,请尝试在 PHPMyAdmin 或其他中执行它,或者尝试回显它并查看它是否一致。

于 2012-07-10T20:26:58.190 回答
1

看起来您的mysql_query呼叫返回false(布尔值),然后您在mysql_fetch_assoc没有检查它是否有效的情况下调用它。

尝试这个:

$result22 = mysql_query($query22) or die('Invalid MySQL query: ' . mysql_error());

这将告诉您查询在哪里死亡。

于 2012-07-10T20:27:31.320 回答
1
  • 你不应该再使用 mysql_* 函数了
  • 您永远不应该直接将变量放入查询中;查看可用于相应 API 的各种转义函数。在这种情况下使用 mysql_real_escape_string
  • 要查看查询的错误,请执行以下操作:

    if (!$result22) { die(mysql_error()); }

于 2012-07-10T20:31:16.190 回答
0

这意味着您之前对mysql_query()返回的调用false,因此没有要获取的结果。当查询出现问题时会发生这种情况,例如语法错误。

在这种情况下,您将要检查 if $result22is false,然后看看mysql_error()有什么要说的:

if ($result22 === false) {
    echo mysql_error();
    return false;
}
于 2012-07-10T20:28:33.017 回答