php中,php中php中mysqli_fetch_assoc()与mysqli_fetch_row()都是把查询结果的第一行返回到一个数组中,不同的是mysqli_fetch_assoc()是通过关键字索引取值,而mysqli_fetch_row()是通过索引id取值。
mysqli_fetch_assoc()和mysqli_fetch_row()这两个函数有一个特点,就是,如果下一次执行时,会在上一次的基础上,指针下移;所以可以利用此特性遍历出所有结果集,存入数组中。
代码示例:
<?php
$conn=mysqli_connect('localhost','数据库账号','数据库密码','数据库名称');
$rows=mysqli_query($conn,"select * from 表名");
while($r=mysqli_fetch_assoc($rows) and $i<11){
echo '';
echo ''.$r['id'].''.$r['name'].''.$r['email'].'';
echo '';
}
<?php
$conn=mysqli_connect('localhost','root','123456','diguo2');
$rows=mysqli_query($conn,"select * from student");
while($r=mysqli_fetch_row($rows) and $i<11){
echo '';
echo ''.$r[1].''.$r[2].''.$r[3].'';
echo '';
}
另外,许多情况下,都需要将mysql的查询结果转成一个数组,这个就可以遍历数组来显示,查询结果。在我的开发环境里,我使用mysqli_fetch_all函数,使用方法如下:
$rows=mysqli_query($conn,"select * from 表名");
mysqli_fetch_all($rows,MYSQLI_ASSOC);
加上MYSQLI_ASSOC是为了使返回的是关联数组,之后就可以遍历$posts数组。当将这段代码放到线上环境时,发现没有结果,最后才知道原来是mysqli_fetch_all函数无法使用。