首页 期权学习期权知识正文

Ecshop数据库getRow,getAll,getOne操作方法的区别

xiaojiucai 期权知识 2020-08-18 597 0

ECShop没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现。这样做的好处是实现非常轻量,大大减小了分发包的文件大小。另外,当网站需要做memcached缓存时,也可以很方便的实现。

当然,这样做的后果就是数据库的选择非常狭窄,无法实现其它的非MySQL数据库。

ECShop的数据操作类文件是includes/cls_mysql.php,类名是cls_mysql

该类主要提供了下面 一些比较有用的方法:

getAll($sql)和getAllCached($sql, $cached = 'FILEFIRST'):获取所有记录。

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;
        }
    }

getRow($sql, $limited = false)和getRowCached($sql, $cached = 'FILEFIRST'):获取单行记录。

getCol($sqlse)和getColCached($sql, $cached = 'FILEFIRST'):获取某栏位的所有值。

getOne($sql, $limited = false)和getOneCached($sql, $cached = 'FILEFIRST'):获取单个数值。

function getOne($sql, $limited = false)
    {
        if ($limited == true)
        {
            $sql = trim($sql . ' LIMIT 1');
        }
 
        $res = $this->query($sql);
        if ($res !== false)
        {
            $row = mysql_fetch_row($res);
 
            if ($row !== false)
            {
                return $row[0];
            }
            else
            {
                return '';
            }
        }
        else
        {
            return false;
        }
    }

query($sql):执行数据库查询。

autoExecute($table, $field_values, $mode = 'INSERT', $where = ''):数据库表操作。

原文链接:https://www.qiquanji.com/post/7222.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。