返回顶部

[Discuz] discuz x中 fetch_all函数求解释,该怎么处理

[复制链接]
awagink 显示全部楼层 发表于 2021-2-20 18:05:48 |阅读模式 打印 上一主题 下一主题
discuz x2.5中 fetch_all函数求解释
  1. public static function fetch_all($sql, $arg = array(), $keyfield = '', $silent=false) {

  2. $data = array();
  3. $query = self::query($sql, $arg, $silent, false);
  4. while ($row = self::$db->fetch_array($query)) {
  5. if ($keyfield && isset($row[$keyfield])) {
  6. $data[$row[$keyfield]] = $row;
  7. } else {
  8. $data[] = $row;
  9. }
  10. }
  11. self::$db->free_result($query);
  12. return $data;
  13. }
复制代码


请大侠解释下这个函数,最好每句代码与函数参数代表的意思都解释下。谢谢啊!
------解决思路----------------------


  1. /*
  2. *        $sql        要执行的sql语句
  3. *        $arg        sql中要用到的参数(数组)
  4. *        $keyfield        返回数组中的键名(若有)
  5. *        $silent        已以哪种方式查询(默认是mysql_query,还有mysql_unbuffered_query)
  6. */
  7. public static function fetch_all($sql, $arg = array(), $keyfield = '', $silent=false) {

  8. $data = array();
  9. $query = self::query($sql, $arg, $silent, false);//执行查询
  10. while ($row = self::$db->fetch_array($query)) {
  11. //将查询的资源放到$data数组中,若$keyfield有值,则将$keyfield作为$data的key值
  12. if ($keyfield && isset($row[$keyfield])) {
  13. $data[$row[$keyfield]] = $row;
  14. } else {
  15. $data[] = $row;
  16. }
  17. }
  18. self::$db->free_result($query);//释放资源
  19. return $data;//二维数组
  20. }
复制代码


一个例子

  1. //查询uid为1的用户的所有信息
  2. $res=DB::fetch_all("SELECT * FROM %t WHERE uid=%d",array('common_member',1));
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

纳速健身网成立于2006年8月,是国内优秀健身运动网站,现拥浏览人数超30万。网站是集养生、武术、太极拳和健身气功等多种健身项目于一体的多功能交流平台。平台提供大量优质的教学视频、伴奏音乐(太极拳晨练音乐,广场舞音乐,健身气功音乐)、图文教程、运动科普和经验分享,为健身爱好者提供完善的运动指导平台。
  • 纳速QQ群乙:151815303
  • 纳速QQ群丙:79104490
  • 微信交流群:微信好友搜索【nasuwang】加小纳微信进群交流健身知识,备注【纳速】
  •                     或者扫描页面底部右侧二维码添加小纳微信>>>
  • 微信公众号

  • 微信群客服交流

  • Copyright © 2006-2021, 纳速健身网. | | 辽ICP备13002388号-1 辽公安网备21050202000005号公安网备号 纳速武术-乙 QQ