纳速健身

 找回密码
 注册

扫一扫,访问移动社区

查看: 20|回复: 0

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

[复制链接]
发表于 2021-2-20 18:05:48 | 显示全部楼层 |阅读模式
试听
亲,登录后才能试听哦。
登录方法:
1.电脑版在右上角【登录】
2.手机版点右下角【登录】进入登录页面。
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));
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表