在PHP網站開發中,由於其支持各種數據庫引擎,如Mysql,Mssql,Pgsql,sqlite等,並對各種數據庫系統都提供了不同的函數作為接口,給PHP網站開發者帶來很多便利。
但同時也帶來了平台移植性的問題,隨著底層數據庫的改變,PHP代碼也必須改變。對於這個問題,有各種解決方法,如使用PHP ADODB類,PHP PEAR DB類或者自行編寫PHP DB類,將各種數據庫的函數操作聚合在一起等,今天和大家分享如何安裝使用PHP PEAR DB類,以實現不同數據庫的訪問功能。
准備工作
1、在使用PHP PEAR DB類訪問數據庫之前,需要安裝PHP PEAR,然後通過PEAR來下載安裝DB類,即pear install db
2、根據需要安裝相關數據庫,比如Mysql,Mssql,Pgsql,Sqlite等,同時在PHP.INI中找到Dynamic Extensions,引入對應數據的DLL文件,並重啟Apache。
注意:由於我使用的是DedeAMPZ,在安裝PHP PEAR時一定要安裝在DedeAMPZWebRootDefault目錄下,否則在引入DB.php時會報Failedopening required ‘DB.php’錯誤,即找不到DB類(could not find pear db library),因為DedeAMPZ可能對相關的目錄做了限制。
PHP PEAR DB類使用示例
- < ?
- require_once("DB.php");
- $userName = 'root';
- $password = '123456';
- $hostName = 'localhost';
- $dbName = 'test';
- $dsn = "mysql://$userName:
$password@$hostName/$dbName";- $dbCon = DB::connect($dsn);
- if (DB::isError($dbCon)) {
- die ($dbCon->getMessage());
- }
- $sql = "CREATE TABLE leapsoul (".
- "`id` INT( 11 ) UNSIGNED NOT NULL ,".
- "`name` VARCHAR( 30 ) CHARACTER
SET gbk COLLATE gbk_chinese_ci NOT NULL ,".- "`age` INT( 2 ) NOT NULL ,".
- "`birthday` VARCHAR( 30 ) CHARACTER
SET gbk COLLATE gbk_chinese_ci NOT NULL ,".- "`sex` INT( 1 ) NOT NULL ,".
- "PRIMARY KEY ( `id` )".
- ") ENGINE = MYISAM CHARACTER SET gbk
COLLATE gbk_chinese_ci";- $result = $dbCon->query($sql);
- if (DB::isError($result)) {
- die ($result->getMessage());
- }
- $sql = "insert into leapsoul(id,name,
age,birthday,sex) values(1,'leapsoul',1,
'2009-05-13',1),(2,'leapsoul',1,'2009-05
-13',1),(3,'leapsoul',1,'2009-05-13',1)";- $result = $dbCon->query($sql);
- if (DB::isError($result)) {
- die ($result->getMessage());
- }
- $dbCon->setFetchMode(DB_FETCHMODE_ASSOC);
- $sql = "select * from leapsoul";
- $result = $dbCon->query($sql);
- if (DB::isError($result)) {
- die ($result->getMessage());
- }
- for($i=0;$i<$result->numRows();$i++)
- {
- $info = &$result->fetchRow();
- echo "name:".$info['name'];
- echo "birthday:".$info['birthday']."<br>";
- }
- $result->free();
- $dbCon->disconnect();
- }
以上就是PHP PEAR DB類的詳細使用方法介紹。