SELECT查询返回警告(期望参数1为资源)

时间:2013-09-04 18:36:06

标签: php mysql select

编辑:感谢所有人的帮助(特别是@Marty McVry)。我刚刚编辑了这个问题。

表:购买

 purchase_id     |   seller       |   buyer
        12       |      2         |     5
        29       |      5         |     2


 $check=query("SELECT (COUNT(*) >= 2) AS RESULT
 FROM   purchase a
     INNER JOIN purchase b
     ON a.seller = b.buyer AND
        a.buyer = b.seller
 WHERE  (a.seller = 2 AND a.buyer = 5) OR
        (a.seller = 5 AND a.buyer = 2)");

 $row = mysql_fetch_row($check);
 echo $row[0];
 if ($row[0] > 0) {
 foo
 } else {
 bar
 }      

当我运行此查询时,出现以下错误:

Warning: mysql_fetch_row() expects parameter 1 to be resource, string given in line 180$row = mysql_fetch_row($check);)。

这是怎么回事?

FIY,这里,query()连接到数据库并执行SQL语句,可能带参数。

3 个答案:

答案 0 :(得分:2)

修改后:

作为旁注:您正确查询数据库,尽管您可能希望查看PDO或mysqli。

问题是你之后对结果集做了什么。

您必须获取行才能查看结果:

$row = mysql_fetch_row($check);
echo $row[0];
if ($row[0] > 0) {
    // Code goes here
} else {
    // Other code goes here
}

答案 1 :(得分:1)

该行:

$ result =(count($ check));

获取查询返回的行数,在您的情况下应始终为1.您将需要获取该行中包含的数据并对其进行操作:

$ row = myqli_fetch_row($ check);

$row将是一个数组,第一个元素应该是查询中RESULT的值。

答案 2 :(得分:0)

在你的情况下,$ result会一直返回1,因为你只计算($ check)... 再检查你的代码......