在PHP網站開發中,針對數據庫平臺移植性的解決方案,之前介紹過PEAR DB類安裝使用的PHP教程,其實使用PHP ADOdb類庫也是一種很好的解決方案,其支持的數據庫引擎更多。
作爲PHP ADOdb使用手冊開篇文章,主要介紹使用PHP ADOdb類庫具有哪些優點,PHP ADOdb類庫的基本安裝使用方法,以及使用PHP ADOdb建立Mysql數據庫連接的幾種方法。
使用PHP ADOdb的優點
1、與PHP結合好,速度快
2、擴展性好,對於windows平臺的程序員來說易於掌握,因爲和Microsoft’s ADO的類庫比較類似
3、使用起來容易上手
4、每個版本都是在Access, MySQL, PostgreSQL, MS SQL, Oracle 11g上獨立測試,質量保證,支持多種數據庫。
5、PHP4版本支持使用PHP ADOdb類庫來存儲session變量,便於擴展和移植
PHP ADOdb類庫的相關文件說明
Adodb.inc.php爲主要文件,使用adodb類時,只要include這個文件即可
Adodb-*.inc.php是特定的數據庫驅動程序代碼
Test.php包含測試adodb類庫的測試數據庫列表,在tests目錄下
Adodb-session.php是PHP4中的session 處理代碼
Testdatabases.inc.php包含應用於測試的數據庫列表,被Test.php include
tute.htm是PHP ADOdbadodb類英文版使用教程。
PHP ADOdb類庫的基本安裝使用方法
1、首先需要下載PHP ADOdb類庫,當前ADOdb類庫版本爲ADOdb5
2、開始PHP ADOdb類庫安裝
PHP ADOdb類庫安裝主要有兩種方式,一種是包含完整的源代碼,另一種最小化安裝方式。
首先確保運行的PHP版本在4.0.5以上,然後解壓縮PHP ADOdb類庫文件至web服務器的相關目錄,PHP ADOdb類庫安裝就完成了。查看PHP運行環境配置教程
PHP ADOdb類庫最小化安裝方式
在最小化安裝PHP ADOdb類庫時必須包含以下文件
adodb.inc.php
adodb-lib.inc.php
adodb-time.inc.php
drivers/adodb-$database.inc.php
license.txt
adodb-php4.inc.php
adodb-iterator.inc.php
安裝可選項:
adodb-error.inc.php and lang/adodb-$lang.inc.php (可使用MetaError())
adodb-csvlib.inc.php (如果你打算使用緩存記錄,需要用到CacheExecute()等)
adodb-exceptions.inc.php 和 adodb-errorhandler.inc.php (如果你使用adodb處理錯誤或者PHP5中的錯誤異常).
adodb-active-record.inc.php (Active Records 號稱可以將數據庫中的表和記錄與本地的PHP對象獨立開來,讓程序員將更多的精力集中在數據處理上,而不是SQL語句,MVC的味道,呵呵)。
在完成PHP ADOdb類庫的安裝工作後,我們開始PHP ADOdb類庫的使用之旅。
PHP ADOdb使用之Mysql數據庫連接建立方法
PHP ADOdb類庫支持多種類型的數據庫,本教程首先介紹最基本的使用PHP ADOdb類庫與Mysql數據庫建立連接(connect)的方法,與PEAR DB類庫類似,PHP ADOdb類庫建立Mysql數據庫連接(connect)也有兩種方法,一種使用ADONewConnection和Connect函數建立連接,一種使用DSN建立連接。如何使用PEAR DB類?
使用PHP ADOdb建立Mysql連接方法一
1 2 3 4 5 6 7 8 9 10 11 |
註釋
1、在使用PHP ADOdb類庫建立Mysql數據庫連接時,你需要使用PHP ADOdb類庫的ADONewConnection($driver)函數創建一個連接,你可以選擇建立哪種數據庫,比如Access等,這裏我使用Mysql數據庫建立連接。
2、然後你需要決定是使用永久性連接還是非永久連接,永久連接速度更快,數據庫連接不會關閉除非你使用close()函數;非永久連接儘快佔用的資源少,但是風險在於數據庫和web服務器的負荷會比較重。你可以根據項目的具體需求自行決定。
3、然後通過Execute函數執行SQL語句,再以數組結構顯示查詢leapsoul表中關於www.leapsoul.cn的相關信息。
知識點:
1、NewADOConnection($driver)是ADONewConnection($driver)的別名,功能一樣,建立連接時,ADONewConnection($dbdriver)與&ADONewConnection($dbdriver)沒啥區別。
2、永久連接使用$conn->PConnect(),非永久使用$conn->Connect(),有些數據庫也支持NConnect(),此函數會強制創建新的數據庫連接
3、如果你同時創建了永久和非永久兩種連接,並使用相同的userid和password,PHP將會共享同一個連接,當它們連接不同數據庫時,會出現問題,解決方法是對不同的數據庫總是使用不同的userid或者使用NConnect()
使用PHP ADOdb建立Mysql連接方法二
PHP ADOdb類庫從4.51版本開始支持以DSN方式連接數據庫
DSN格式如下
1 | $driver://$username:$password@hostname/$database?options[=value] |
options主要有以下選項
所有數據庫都支持的選項:’persist’, ‘persistent’, ‘debug’, ‘fetchmode’, ‘new’ , ‘cachesecs’, ‘memcache’
Interbase/Firebird:’dialect’,'charset’,'buffers’,'role’
M’soft ADO:’charpage’
MySQL:’clientflags’
MySQLi:’port’, ’socket’, ‘clientflags’
Oci8:’nls_date_format’,'charset’
上述選項如果options的value沒有賦值,則默認值爲1
cachesecs決定了當CacheExecute()和CacheSelectLimit()函數被調用,同時這兩個函數又沒有設定cache-time參數值時,recordsets緩存多少秒,默認緩存3600秒
memcache定義了memcache的主機地址,端口以及是否使用壓縮機制。
cachesecs和memcache兩個參數是從PHP ADOdb 5.09版本開始增加的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <? include('adodb5/adodb.inc.php'); #非永久連接方式 $dsn='mysql://root:123456@localhost/test'; $db= NewADOConnection($dsn); if(!$db)die("Connection failed"); # 永久連接 //$dsn2 = 'mysql://root:pwd@localhost/mydb?persist'; # 非永久連接,數據庫端口爲3000 // $dsn2 = 'mysqli://root:pwd@localhost/mydb?persist=0&port=3000'; $db->debug=true; $rs=$db->Execute('select * from leapsoul'); print"<pre>"; print_r($rs->GetRows()); print"</pre>"; ?> |
知識點:
使用DSN方式連接數據庫時NewADOConnection()內部調用Connect()或者PConnect()函數,如果連接失敗,則返回False
至此,在完成PHP ADOdb類庫安裝後,使用PHP ADOdb類庫建立Mysql數據庫連接的方法就介紹完了,大部分數據庫建立連接的方法與Mysql數據庫建立連接方法是一樣的,下次將會介紹PHP ADOdb使用手冊之Access等數據庫的連接方法。