我目前正在使用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();
手动输入