MySQL数据库连接问题


Mysqli database connection issue

我目前正在使用mysqli来封装到数据库的连接。我的主机服务器不支持PDO连接,所以这就是我使用mysqli的原因。当进行连接时,我得到了这个错误:

Fatal error: Call to undefined method mysqli_result::fetchAll()

fetchAll()不是mysqli的一部分吗?

PHP连接到数据库

$mysqli = new mysqli('localhost', 'user', 'password', 'database');
if (mysqli_connect_error()) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}
else {
echo ('Success... '); 
}
    $sql = "SELECT * 
            FROM `categories`
            WHERE `master` = 0";
    $statement = $mysqli->query($sql);
    $list = $statement->fetchAll();

否:是fetch_all(),而不是fetchAll()

当您调用$mysqli->query($sql)时,它可以返回一个mysqli_result对象,或者在出现错误时返回值false。我认为您的查询不成功,返回的值为false,当然,如果您要求false->fetchAll(),这将给出一条错误消息。

因此,您必须首先检查查询是否成功(使用===运算符并检查false),然后才能处理查询结果。

第页。S.这就是为什么我从不自己编写函数,使用混合类型的返回值。。。

根据文档,它只在mysqlnd中可用。然而,mysql fetch all页面上的第一条注释描述了如何创建一个做同样事情的函数。

http://php.net/manual/en/mysqli-result.fetch-all.php

而且它是fetch_all而不是fetchAll

您可能想要fetch_all(),而不是fetchAll()

mysqli_result::fetch_all();
PDO::fetchAll();

手动输入