PHP ADOdb

 在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

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 leapsoul');

print"<pre>";
print_r($rs->GetRows());
print"</pre>";
?>

知識點

  使用DSN方式連接數據庫時NewADOConnection()內部調用Connect()或者PConnect()函數,如果連接失敗,則返回False

  至此,在完成PHP ADOdb類庫安裝後,使用PHP ADOdb類庫建立Mysql數據庫連接的方法就介紹完了,大部分數據庫建立連接的方法與Mysql數據庫建立連接方法是一樣的,下次將會介紹PHP ADOdb使用手冊之Access等數據庫的連接方法。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章