如何修复php请求结果而不是mysqli\u fetch\u assoc的布尔值?

lf5gs5x2  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(250)

这个问题在这里已经有答案了

3个不同的等式(5个答案)
两年前关门了。
我一直在开发我的聊天应用程序,我把它很好地插入了mysql。很明显,我用错了引擎。无论如何,它想要的是“mysqli\u result”而不是“mysqli\u fetch\u assoc”。我知道这个代码是好的,考虑到它在另一个页面上运行良好。
我试着重新输入,复制工作代码,把我的值,任何我能想到的。。。这是我的密码

$query='mysqli_query'($con, "SELECT * FROM chat ORDER by id ASC");
if ($query = true) {
while($row = mysqli_fetch_assoc($query)) {
    $username=$row["username"];
    $text=$row["text"];
    $time=date('G:i', strtotime($row["time"])); 

echo "<p>$time | $username: $text</p>";
}

我希望代码可以工作,因为我从一个工作代码位复制了它,但是我得到了这样的结果:“警告:mysqli\u fetch\u assoc()希望参数1是mysqli\u result,boolean在/storage/ssd2/266/7895266/public\u html/read.php的第15行给出”

rn0zuynd

rn0zuynd1#

如前所述,删除函数调用周围的引号。

// Incorrect syntax
$query='mysqli_query'($con, "SELECT * FROM chat ORDER by id ASC");

// Correct
$query = mysqli_query($con, "SELECT * FROM chat ORDER by id ASC");

但你还有另一个问题:

if ($query = true) {

应该是:

if ($query) {

或者更好:

if ($query instanceof mysqli_result) {

用比较代替赋值。使用等号,就是 $query 总是评估到 true 如果条件通过。比较应该检查一个非虚假值——特别是mysqli\u结果对象。

相关问题