資料庫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
執行資料庫查詢
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快取時,也可以很方便的實現。當然,這樣做的後果就是資料庫的選擇非常狹窄,無法實...