php連接Access數據庫的三種方法

雖然不是一個類但先放這兒吧

最近想把一個asp的網站改成php的,無奈空間不支持mysql數據庫,隻好用access數據庫瞭,但以前都是用的php+mysql,php+access數據庫編程還真沒有做過.
感謝黨,感謝cctv,感謝搜索引擎,這不找到一編不錯的文章,特轉過來和大傢分享.//aiwalls.com
在PHP中連接Access有如下3種方式。 php程序員之傢

(1)創建系統數據源,用PHP提供的ODBC函數即可。

php程序員之傢

(2)同樣可以使用PHP的ODBC函數,但不創建數據源。
開放數據庫連接(Open DateBase Conection,ODBC)是Windows Open Server(開放服務)API(WOSA)產品之一。一個數據源是對數據庫的一個命名連接。對於應用程序要連接的不同類型的數據庫,都需要一個ODBC 驅動程序。ODBC API主要是為客戶/服務器的RDBMS使用設計的,但是ODBC驅動程序也可以用於連接桌面數據庫文件、工作表和平面文件。ODBC使用 Odbcinst.dll庫來設置和清除數據源。Odbcad32.exe是一個用於建立ODBC數據源的獨立的32位可執行應用程序,在控制面板中有其對應的圖標Control Panel。
php程序員站 //aiwalls.com

ODBC驅動管理程序為數據源打開ODBC驅動程序並將 SQL語句傳送給驅動程序。在客戶/服務器RDBMS處理完一個select查詢後,ODBC驅動程序將值返回給應用程序。當執行一個insert、 update或delete語句時,驅動程序返回查詢所影響的行數。 //aiwalls.com

下面介紹PHP使用ODBC連接Access 數據庫的方法。用$connstr="DRIVER= Microsoft Access Driver (*.mdb)來設置數據驅動,函數realpath()用來取得數據庫的相對路徑。利用該方法連接Access數據庫主要應用到PHP的 odbc_connect()函數,該函數聲明如下: //aiwalls.com

以下為引用的內容:
resourse odbc_connect( string dsn, string user, string password [, int cursor_type])
dsn:系統dsn名稱

user:數據庫服務器某用戶名。
php程序員站

password:數據庫服務器某用戶密碼。 php程序員站

cursor_type:遊標類型。

php程序員之傢

代碼如下:

以下為引用的內容:
$connstr="DRIVER=Microsoft Access Driver (*.mdb);
DBQ=".realpath("bookinfo.mdb");

$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC );

php程序員之傢

(3)使用微軟的ADODB數據庫驅動。ActiveX Data Objects(ADO)是Microsoft開放數據庫應用程序的數據庫訪問技術。它被設計用來同新的數據訪問層OLE DB Provider一起協同工作,提供通用數據訪問(Universal Date Access)。OLE DB是一個低層的數據訪問接口,用它可以訪問各種數據源,包括傳統的關系型數據庫、電子郵件系統及自定義的商業對象。ADO技術大大簡化瞭OLE DB的操作,因為ADO封裝瞭OLE DB程序中使用的大量COM接口,所以ADO是一種高層的訪問技術。 php程序員站//aiwalls.com

ADO技術基於通用對象模型(COM),它提供瞭多種語言的訪問技術。PHP是通過預先定義類COM來使用ADO方法操縱Access數據庫的。該類詳細說明如下:

以下為引用的內容:
string com::com( string module_name [, string server_name [, int codepage]])
module_name:被請求組件的名字或class-id。

server_name:DCOM服務器的名字。
Codepage:指定用於將PHP字符串轉換成UNICODE字符串的代碼頁,反之亦然。該參數的取值有CP_ACP、CP_MACCP、CP_OEMCP、CP_SYMBOL、CP_THREAD_ACP、CP_UTF7和CP_UTF8。
PHP利用com類並使用ADO方法訪問數據庫的代碼如下:

以下為引用的內容:
$conn = new com("ADODB.Connection");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("bookinfo.mdb ");

$conn->Open($connstr);

發佈留言