为了账号安全,请及时绑定邮箱和手机立即绑定

关于mysqli_fetch_row一次只能返回一行数组

关于mysqli_fetch_row一次只能返回一行数组

慕慕森 2019-04-07 11:19:15
$qst_id=$_GET['str'];if($qst_id){$qst_sql="SELECT*FROMexam_qstWHEREqst_id='$qst_id'";$query=$conn->query($qst_sql);$row=$query->fetch_array();$length=sizeof($row)/5;$a=0;while($aclose();}$conn->close();如代码,每次查询数据库应该取出多行数据,但是mysqli_fetch_array跟mysqli_fetch_row似乎都只能返回一行数据。请问如何能将查询到的所有数据全部装到一个数组里。
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

$qst_id=$_GET['str'];
if($qst_id){
$qst_sql="SELECT*FROMexam_qstWHEREqst_id='$qst_id'";
$query=$conn->query($qst_sql);
$row=$query->fetch_all();
foreach($rowas$vl){
echo"".$vl[1]."".$vl[2]."".$vl[5]."".$vl[4]."".$vl[6]."";
}
$query->close();
}
确实是需要遍历所有的结果集,自己用foreach来执行并成功返回了。还是谢谢@捞鱼的转阿转
                            
查看完整回答
反对 回复 2019-04-07
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

话说是mysql__fetch_array和mysql_fetch_row吧。他俩功能差不多,都是已数组的形式返回一行数据。
所以返回一行是没错的。你需要的是遍历所有的结果集,需要通过循环的帮助。
下面的给你参考
php/**
*获取执行SQL所有数据
*@param[type]$sql待执行
*@return[type]执行返回结果
*/
publicfunctionfetchAll($sql){
if($result=$this->query($sql)){
$rows=array();
while($row=mysql_fetch_row($result)){
$rows[]=$row;
}
mysql_free_result($result);
return$rows;
}else{
returnfalse;
}
}
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 387 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信