雖然不是一個類但先放這兒吧
最近想把一個ASP的網站改成PHP的,無奈空間不支持MySQL數據庫,只好用Access數據庫了,但以前都是用的php+MySQL,PHP+Access數據庫編程還真沒有做過.
感謝黨,感謝cctv,感謝搜索引擎,這不找到一編不錯的文章,特轉過來和大家分享.
在PHP中連接Access有如下3種方式。
(1)創建系統數據源,用PHP提供的ODBC函數即可。
(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程序員站
ODBC驅動管理程序為數據源打開ODBC驅動程序並將 SQL語句傳送給驅動程序。在客戶/服務器RDBMS處理完一個select查詢後,ODBC驅動程序將值返回給應用程序。當執行一個insert、 update或delete語句時,驅動程序返回查詢所影響的行數。
下面介紹PHP使用ODBC連接Access 數據庫的方法。用$connstr="DRIVER= Microsoft Access Driver (*.mdb)來設置數據驅動,函數realpath()用來取得數據庫的相對路徑。利用該方法連接Access數據庫主要應用到PHP的 odbc_connect()函數,該函數聲明如下:
以下為引用的內容:
resourse odbc_connect( string dsn, string user, string passWord [, int cursor_type])
dsn:系統dsn名稱
user:數據庫服務器某用戶名。
PHP程序員站
passWord:數據庫服務器某用戶密碼。 PHP程序員站
cursor_type:游標類型。
代碼如下:
以下為引用的內容:
$connstr="DRIVER=Microsoft Access Driver (*.mdb);
DBQ=".realpath("bookinfo.mdb");
$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC );
(3)使用微軟的ADODB數據庫驅動。ActiveX Data Objects(ADO)是Microsoft開放數據庫應用程序的數據庫訪問技術。它被設計用來同新的數據訪問層OLE DB Provider一起協同工作,提供通用數據訪問(Universal Date Access)。OLE DB是一個低層的數據訪問接口,用它可以訪問各種數據源,包括傳統的關系型數據庫、電子郵件系統及自定義的商業對象。ADO技術大大簡化了OLE DB的操作,因為ADO封裝了OLE DB程序中使用的大量COM接口,所以ADO是一種高層的訪問技術。
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);