pear mdb2是整合原有db函式後的新類別庫(pear db已不再維護更新),而兩者的差別據官網所述,mdb2提供一些選擇性的特色,讓它建構出的SQL敘述對各資料庫系統有較好的可攜性portable。

如果和我一樣是自己手動安裝的話,除了要裝mdb2的libiary外,記得還要裝資料庫的driver:
1. 下載MDB2
2. 下載MDB2_Driver_mysql
3. 兩者解壓後,整合到一個資料夾
(可下載我整合好的mdb2,省略上述;如果需要mssql、oracle、postgrel,可至官網搜尋並下載driver)
4. 上傳至pear的資料夾(路徑自行決定,不贅述)
require_once('MDB2.php');
setDBOpen();
//要進行資料庫操作的程式...後續介紹
//dbconn->query("...");
//dbconn->queryOne("...");
//dbconn->queryRow("...");
//dbconn->queryAll("...");
//dbconn->exec("...");
setDBClose();
//自行撰寫的資料庫連接函式
function setDBOpen() {
$GLOBALS['dbconn'] = &MDB2::connect(array('phptype'=>'mysql','hostspec'=>'localhost','database'=>'hello','username'=>'hello','password'=>'hello','charset'=>'utf8'));
if(!PEAR::isError($GLOBALS['dbconn'])) {
$GLOBALS['dbconn']->setFetchMode(MDB2_FETCHMODE_ASSOC);
$GLOBALS['dbconn']->setOption('portability',MDB2_PORTABILITY_NONE);
} else {
die('error!');
//如果要顯示詳細的錯誤訊息,就改用下述
//die($GLOBALS['dbconn']->getMessage().','.$GLOBALS['dbconn']->getDebugInfo());
}
}
//自行撰寫的資料庫斷線函式
function setDBClose() {
if (is_object($GLOBALS['dbconn'])) $GLOBALS['dbconn']->disconnect();
}
用哪個模式看需求,如果和我一樣每次資料庫連線就要進行操作的話,用connect就可以了
setFetchMode有三種屬性(query出來值的呈現方式):
option有幾個項目,當中特別要說明的是portability,如果沒有加上MDB2_PORTABILITY_NONE,query出來的結果一律以小寫表示,比方說:
$test = dbconn->queryRow("select ABC,DEF from hello where ID = 1");
echo $test['abc']; //正確
echo $test['ABC']; //錯誤
官網說為了各資料庫的相容性,所以預設是以小寫表示,如果真的不需要,就用MDB2_PORTABILITY_NONE把它關掉
在Google及Yahoo找資料,已成為許多人每天必行的公事。「網路」的無遠弗屆,造就了一個世界級的知識寶庫,著實讓我受益良多。
設立此部落格除用做網路行銷、學習記事與知識管理外,希望也能做些回饋和經驗分享,如果有人能從這裡的文章得到一點幫助就好了...
網站生日:2008/09/16 年紀:41個多月
寫下留言