Ecshop 數據庫操作方法getRow、getAll、getOne區別


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 = ''):數據庫表操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM