用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6658|回复: 12
收起左侧

[已解决] 关于CI的数据库类!

[复制链接]
发表于 2012-4-12 14:05:24 | 显示全部楼层 |阅读模式
获取所有记录集:
$query = $this->db->query("要执行的 SQL");
foreach ($query->result_array() as $row)
{
   echo $row['title'];
   echo $row['name'];
   echo $row['body'];
}

感觉这个好麻烦!

function getAll($sql)
    {
        $res = $this->query($sql);
        if ($res !== false)
        {
            $arr = array();
            while ($row = mysql_fetch_assoc($res))
            {
                $arr[] = $row;
            }
            return $arr;
        }
        else
        {
            return false;
        }
    }

想把这个方法加到数据库类文件里面去,求指教!

发表于 2012-4-12 14:51:56 | 显示全部楼层
不一定要加到数据库类里吧。
你自己封装一下就好了。
发表于 2012-4-12 15:55:39 | 显示全部楼层
我觉得已经很不麻烦的,再简单的话,简单的东西都不好定制
 楼主| 发表于 2012-4-12 15:59:41 | 显示全部楼层
kissgxd 发表于 2012-4-12 15:55
我觉得已经很不麻烦的,再简单的话,简单的东西都不好定制

$query = $this->db->query("要执行的 SQL");
foreach ($query->result_array() as $row)
{
   echo $row['title'];
   echo $row['name'];
   echo $row['body'];
}

这样如果获取一个结果集,都要写foreach 循环?
发表于 2012-4-13 08:22:59 | 显示全部楼层
午灬夏 发表于 2012-4-12 15:59
$query = $this->db->query("要执行的 SQL");
foreach ($query->result_array() as $row)
{

是啊  这也是最基本的了吧。
本身就是一个类数组形式的数据
要想获得详细数据,怎么着也得循环一次啊
发表于 2012-4-13 08:24:11 | 显示全部楼层
午灬夏 发表于 2012-4-12 15:59
$query = $this->db->query("要执行的 SQL");
foreach ($query->result_array() as $row)
{

你若是只获得一条,不需要循环的,要想获得多条需要循环
 楼主| 发表于 2012-4-13 09:00:24 | 显示全部楼层
kissgxd 发表于 2012-4-13 08:22
是啊  这也是最基本的了吧。
本身就是一个类数组形式的数据
要想获得详细数据,怎么着也得循环一次啊 ...

我看ecshop里面获取一条就用getRow($sql),获取多条用getAll($sql) !
发表于 2012-4-13 09:06:17 | 显示全部楼层
那也是人家封装在了模型里或者改为数据库接口了
发表于 2012-4-13 11:04:50 | 显示全部楼层
getall了后怎么用?用的时候,多条记录,不还得foreach……
发表于 2012-4-13 13:14:54 | 显示全部楼层
午灬夏 发表于 2012-4-13 09:00
我看ecshop里面获取一条就用getRow($sql),获取多条用getAll($sql) !

你获得的$query本身就相当于getAll($sql) 了啊
getAll($sql) 后不也得用foreach才能把数据取出来么

本版积分规则