我已经看到了一些关于这个错误的问题,但是他们似乎没有一个解决我的问题的答案...对不起,如果我错过了一个。
我的脚本一直给我一个错误说
在布尔值
上调用成员函数fetch_assoc()
但我不知道情况如何。
$mysqli_query
和$mysqli_query->fetch_assoc()
都是对象。分别是:
object(mysqli_result)#4 (5) {
["current_field"]=>
int(0)
["field_count"]=>
int(2)
["lengths"]=>
NULL
["num_rows"]=>
int(1)
["type"]=>
int(0)
}
和
array(2) {
["date"]=>
string(10) "2016-11-19"
["roles"]=>
string(241) "{"eu":{"host":{"max":2,"0":"U0SEMUG8L"},"chat":{"max":1,"0":"U0SEMUG8L"},"bg":{"max":2,"0":"U0SEMUG8L"}},"us":{"host":{"max":2,"0":"U0SEMUG8L","1":"U0SEMUG8L","2":"U0SEMUG8L"},"chat":{"max":1,"0":"U0SEMUG8L","1":"U0SEMUG8L"},"bg":{"max":2}}}"
}
这些也会产生同样的错误:
SELECT * FROM `hosting_signups`
SELECT * FROM `hosting_signups` WHERE 1
当在PhpMyAdmin中运行以下内容时,它可以正常工作:
SELECT * FROM `hosting_signups` WHERE `date`='2016-11-19'
有谁知道我做错了什么?以下是相关代码:
$mysqli_cmd = "SELECT * FROM `hosting_signups` WHERE `date`='" . $next_karaoke->format("Y-m-d") . "'";
$mysqli_query = $mysqli->query($mysqli_cmd);
//var_dump($mysqli_query->fetch_assoc()); // Oddly, when uncommented this terminates the
// whole while loop below, and the error is not
// produced but my code inside does not run. I'm
// not sure if this is at all related to my problem.
while($row = $mysqli_query->fetch_assoc()) {}
修改 我已经修改了我的代码,需要更多调试,以便:
$mysqli_cmd = "SELECT * FROM `hosting_signups` WHERE `date`='" . $next_karaoke->format("Y-m-d") . "'";
$mysqli_query = $mysqli->query($mysqli_cmd);
var_dump($mysqli_cmd);
var_dump($mysqli->error);
while($row = $mysqli_query->fetch_assoc()) {}
输出结果为:
string(57) "SELECT * FROM `hosting_signups` WHERE `date`='2016-11-19'"
string(0) ""
Fatal error: Call to a member function fetch_assoc() on boolean in
/home2/bugfroggy/public_html/hosting_signup.php on line 63
编辑2:
在我的结尾是一个愚蠢的错误..我不小心改变了$mysqli_query
循环中while
的值而不是我在其中的另一个查询的查询变量环。问题解决了!
答案 0 :(得分:2)
好的。好像您从查询中收到错误。所以要检查是否将这些代码添加到现有查询
or die($mysqli->error);
所以你可以看看你是否有任何错误。
$mysqli_query = $mysqli->query($mysqli_cmd) or die($mysqli->error);
也尝试回显返回的行数。
echo "number of rows: " . $mysqli_query->num_rows;
答案 1 :(得分:0)
我的结果是一个愚蠢的错误..我在$mysqli_query
循环中意外更改while
的值,而不是我正在做的另一个查询的查询变量在循环内部。
答案 2 :(得分:0)
对我来说,错误是表名称;它是“用户”而不是我没想到的“用户”,因为即使使用大写字母,它也可以在我本地的沼泽中工作,但当我将项目上传到LWS时,错误就开始了