ECShop 資料庫操作類

2021-07-04 05:53:35 字數 4130 閱讀 3039

資料庫user

sqlemail

insert

function

目錄(?)

[-]

獲取所有記錄

獲取單行記錄

獲取某字段的所有值

獲取單個值

執行資料庫查詢

資料庫表操作

ecshop v2.7.2沒有使用一些開源的資料庫操作類,比如adodb或者pear,而是封裝了自己的實現。這樣做的好處是實現非常輕量,只有乙個檔案,27kb,大大減小了分發包的檔案大小。另外,當**需要做memcached快取時,也可以很方便的實現。當然,這樣做的後果就是資料庫的選擇非常狹窄,無法實現其它的非mysql資料庫。

ecshop的資料操作類檔案是includes/cls_mysql.php,類名是cls_mysql。該類主要提供了下面 一些比較有用的方法:

現在我們以例項的方式來說明這些方法如何使用。首先,在ecshop/admin目錄下新增檔案test_mysql.php,檔案內容如下:

[php]view plain

copy

<?php  

define('in_ecs'

, true);   

define('ec_charset'

, 'utf-8'

);  

define('root_path'

, 'd:/program files/zend/apache2/htdocs/ecshop/'

);  

define('data_dir'

, 'data'

);  

$db_host

= "localhost:3306"

;   

$db_name

= "ecshop"

;   

$db_user

= "root"

;   

$db_pass

= ""

;   

require

('../includes/cls_mysql.php'

);   

$db= 

newcls_mysql(

$db_host

, $db_user

, $db_pass

, $db_name

);  

獲取所有記錄

getall方法用來從資料庫中獲取滿足條件的所有記錄。getallcached是它的快取版本,cache key是該方法的第二個引數,如果快取有效,直接返回快取結果,否則重新執行資料庫查詢。

將下面的**加到test_mysql.php的最後:

[php]view plain

copy

test_getall();  

function

test_getall()    

修改以後的test_mysql.php執行結果如下:

[php]view plain

copy

array  

(  [0] => array  

(  [user_id] => 1  

[user_name] => admin  

[email] => [email protected]  

)  [1] => array  

(  [user_id] => 2  

[user_name] => bjgonghuo1  

[email] => [email protected]  

)  [2] => array  

(  [user_id] => 3  

[user_name] => shhaigonghuo1  

[email] => [email protected]  

)  [3] => array  

(  [user_id] => 4  

[user_name] => amonest  

[email] => [email protected]  

)  )  

獲取單行記錄

getrow方法用來從資料庫中獲取滿足條件的單行記錄,或者說是第一條記錄。getrowcached是它的快取版本,cache key是該方法的第二個引數,如果快取有效,直接返回快取結果,否則重新執行資料庫查詢。

將下面的**加到test_mysql.php的最後:

[php]view plain

copy

test_getrow();  

function

test_getrow()    

修改以後的test_mysql.php執行結果如下:

[php]view plain

copy

array  

(  [user_id] => 1  

[user_name] => admin  

[email] => [email protected]  

)  

獲取某字段的所有值

getcol方法用來從資料庫中獲取滿足條件的某個欄位的所有值。getcolcached是它的快取版本,cache key是該方法的第二個引數,如果快取有效,直接返回快取結果,否則重新執行資料庫查詢。

將下面的**加到test_mysql.php的最後:

[php]view plain

copy

test_getcol();  

function

test_getcol()    

修改以後的test_mysql.php執行結果如下:

[php]view plain

copy

array  

(  [0] => [email protected]  

[1] => [email protected]  

[2] => [email protected]  

[3] => [email protected]  

)  

獲取單個值

getone方法用來從資料庫中獲取滿足條件的單個值。getonecached是它的快取版本,cache key是該方法的第二個引數,如果快取有效,直接返回快取結果,否則重新執行資料庫查詢。

將下面的**加到test_mysql.php的最後:

[php]view plain

copy

test_getone();  

function

test_getone()    

修改以後的test_mysql.php執行結果如下:

[php]view plain

copy

[email protected]  

執行資料庫查詢

query方法用來執行資料庫查詢,例如insert,update,delete等。 

將下面的**加到test_mysql.php的最後:

[php]view plain

copy

test_query();  

function

test_query()    

修改以後的test_mysql.php執行結果如下:

[php]view plain

copy

你有一封新郵件!  

資料庫表操作

autoexecute方法用來簡化對資料表的insert和update。 

將下面的**加到test_mysql.php的最後:

[php]view plain

copy

test_autoexecute();  

function

test_autoexecute()    

修改以後的test_mysql.php執行結果如下:

[php]view plain

copy

goods_manage  

ECShop 資料庫操作類

ecshop v2.7.2沒有使用一些開源的資料庫操作類,比如adodb或者pear,而是封裝了自己的實現。這樣做的好處是實現非常輕量,只有乙個檔案,27kb,大大減小了分發包的檔案大小。另外,當 需要做memcached快取時,也可以很方便的實現。當然,這樣做的後果就是資料庫的選擇非常狹窄,無法實...

ECShop 資料庫操作類

ecshop v2.7.2沒有使用一些開源的資料庫操作類,比如adodb或者pear,而是封裝了自己的實現。這樣做的好處是實現非常輕量,只有乙個檔案,27kb,大大減小了分發包的檔案大小。另外,當 需要做memcached快取時,也可以很方便的實現。當然,這樣做的後果就是資料庫的選擇非常狹窄,無法實...

ECShop 資料庫操作類

ecshop v2.7.2沒有使用一些開源的資料庫操作類,比如adodb或者pear,而是封裝了自己的實現。這樣做的好處是實現非常輕量,只有乙個檔案,27kb,大大減小了分發包的檔案大小。另外,當 需要做memcached快取時,也可以很方便的實現。當然,這樣做的後果就是資料庫的選擇非常狹窄,無法實...