我有一个带有MySQL SELECT的PHP:
$q = "SELECT signup_id, email
FROM signups
LIMIT ". $inNum;
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));
if (mysqli_affected_rows($dbc) >= 1) {
while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
这是我收到的错误:
mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given
我不确定为什么我收到此错误,因为代码运行正常。
有什么想法吗?
答案 0 :(得分:1)
在我看来,您将$r
的值设置为or
的布尔值,因此正在处理结果数组并抛出错误,因为{{ 1}}看起来它只是一个布尔值。我可能错了,但开始时看起来很混乱。
答案 1 :(得分:1)
返回受上一次INSERT,UPDATE,REPLACE或DELETE查询影响的行数。
更改为mysqli_num_rows并传递查询结果:
$q = "SELECT signup_id, email FROM signups LIMIT ".$inNum;
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));
if (mysqli_num_rows($r) >= 1) {
while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
答案 2 :(得分:1)
Matt和Tony如果把它们放在一起听起来就像是一个很好的答案。
if ($r = mysqli_query( ... )) {
if (mysql_num_rows($r) >= 1) {
while ($row = mysql_fetch_array($r, ..) {
...
}
}
}