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函数无法使用。