mysqli_fetch_all

许多状况下,都须要将mysql的查询结果转成一个数组,这个就能够遍历数组来显示,查询结果。在个人开发环境里,我使用mysqli_fetch_all函数,使用方法以下mysql

$result = mysqli_query($con, $sql);
$posts =  mysqli_fetch_all($result, MYSQLI_ASSOC);

加上MYSQLI_ASSOC是为了使返回的是关联数组,以后就能够遍历$posts数组。当将这段代码放到线上环境时,发现没有结果,最后才知道原来是mysqli_fetch_all函数没法使用。 google以后才知道,mysqli_fetch_all这个函数只存在于mysqlnd中,也就是PHP的原生MySQL驱动中。原来连接MySQL存在两套驱动,一套是libmysql,一套是mysqlnd。原本mysqlnd是不存在的,后来由于mysql到了Oracle手上以后,驱动的认证就有些问题了,因而PHP开发组本身开发了一套mysql驱动。linux

但是在linux下,安装mysqli时仍是默认使用libmysql,因此要么就得从新安装mysqli模块,使用mysqlnd驱动安装,或者本身来实现mysqli_fetch_all的功能。暂时先本身实现相似的功能。sql

$result = mysqli_query($con, $sql);
$posts = array();
while($row = mysqli_fetch_array($result)) {
    $posts[] = $row;
}
相关文章
相关标签/搜索