來自官方的說明:
PEAR MDB2 is a merge of the PEAR DB and Metabase php database abstraction layers.
It provides a common API for all supported RDBMS. The main difference to most other DB abstraction packages is that MDB2 goes much further to ensure portability.
MDB2整合了過去的 PEAR:db函式的新類別庫,為目前PEAR官方所支持
其有許多選擇性的功能,可以增加對各種資料庫系統間資料的可攜性
很適合作為跨資料庫的選擇
MDB2的安裝可以使用套件管理員來進行,詳情可以參考PEAR安裝教學那篇
或者是到PEAR套件官網下載,下載時要連同所連結的資料庫的驅動一起下載
以下簡介使用方式,詳細解說可以到官方說明手冊看
首先來個修改自官網的範例:
<?php
require_once 'MDB2.php';
$dsn = array(
'phptype' => 'mysqli', //輸入所要連結的資料庫類別
'username' => 'user',
'password' => 'pw',
'hostspec' => 'localhost',
'database' => 'DBname',
'charset' => 'utf8',
);
$options = array(
'debug' => 2, //numeric debug level
'portability' => MDB2_PORTABILITY_ALL,
);
$mdb2 =& MDB2::connect($dsn, $options);
if (PEAR::isError($mdb2)) {
die($mdb2->getMessage(). ', ' . $mdb2->getDebugInfo() );
}
$mdb2->disconnect();
?>
首先要使用PEAR的套件都必須先將使用的檔案include
dsn是Data Source Name,用來記錄資料庫資訊
另外,也可以寫成 $dsn = 'mysqli://user:pw@localhost/DBname';
options當然就是額外的附屬要求
需要一提的是portability選項
除非設置成了MDB2_PORTABILITY_NONE,否則query出來的結果都是小寫
例如結果不可能會有 echo $array['A'];
官方的預設是小寫,目的是要達到各種資料庫的相容性,當然這也是MDB2的原則
資料庫的連結方式有三種
&MDB2::connect 建立MDB2物件並連線資料庫
&MDB2::factory 建立MDB2物件,但等到要進行資料庫操作時才連線
&MDB2::singleton 同factory,但它保證只有一個MDB2物件連線到資料庫
想用哪個就用哪個,一般使用下應是factory效率較高
最後用disconnect()來結束連線
連線與結束連線可以以global variable的方式寫成function來增加使用的方便性
可以參考這篇文章
官網那邊尚有使用SSL來建立連線的範例,如下:
<?php
require_once 'MDB2.php';
$dsn = array(
'phptype' => 'mysqli',
'username' => 'someuser',
'password' => 'apasswd',
'hostspec' => 'localhost',
'database' => 'thedb',
'key' => 'client-key.pem',
'cert' => 'client-cert.pem',
'ca' => 'cacert.pem',
'capath' => '/path/to/ca/dir',
'cipher' => 'AES',
);
$options = array(
'ssl' => true,
);
// gets an existing instance with the same DSN
// otherwise create a new instance using MDB2::factory()
$mdb2 =& MDB2::singleton($dsn, $options);
if (PEAR::isError($mdb2)) {
die($mdb2->getMessage());
}
?>
沒有留言:
張貼留言