编辑:感谢所有人的帮助(特别是@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语句,可能带参数。
答案 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)... 再检查你的代码......