0

编辑:感谢大家的帮助(尤其是@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 语句,可能带有参数。

4

3 回答 3

2

编辑后:

附带说明:尽管您可能想查看 PDO 或 mysqli,但您可以正确查询 db。

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

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

$row = mysql_fetch_row($check);
echo $row[0];
if ($row[0] > 0) {
    // Code goes here
} else {
    // Other code goes here
}
于 2013-09-04T19:41:32.437 回答
1

该行:

$result= (count($check));

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

$row = myqli_fetch_row($check);

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

于 2013-09-04T18:54:09.397 回答
0

在您的情况下, $result 一直返回 1,因为您只需 count($check)... 再次检查您的代码...

于 2013-09-04T18:51:32.667 回答