


ADODB安裝與Mysql連接
在PHP網站開發中,針對數據庫平臺移植性的解決方案,之前介紹過PEAR DB類安裝使用的PHP教程,其實使用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
adodb類庫下載地址
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 |
<?
include('adodb5/adodb.inc.php'); $dbdriver = 'mysql'; $db = ADONewConnection($dbdriver); $db->debug = true;//調試,顯示具體的SQL語句 $db->Connect('localhost', 'root', '123456', 'test'); $rs = $db->Execute('select * from leapsoul'); print "<pre>"; print_r($rs->GetRows()); print "</pre>"; ?> |
注釋
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 table1'); print "<pre>"; print_r($rs->GetRows()); print "</pre>"; ?> |
知識點:
使用DSN方式連接數據庫時NewADOConnection()內部調用Connect()或者PConnect()函數,如果連接失敗,則返回False
至此,在完成PHP ADOdb類庫安裝后,使用PHP ADOdb類庫建立Mysql數據庫連接的方法就介紹完了,大部分數據庫建立連接的方法與Mysql數據庫建立連接方法是一樣的,下次將會介紹PHP ADOdb使用手冊之Access等數據庫的連接方法。
關鍵字:ADOdb、Mysql、連接、數據庫
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解