在PHP中連接Access有如下3種方式。
(1)創(chuàng)建系統(tǒng)數(shù)據(jù)源,,用PHP提供的ODBC函數(shù) 即可,。 (2)同樣可以使用PHP的ODBC函數(shù),但不創(chuàng)建 數(shù)據(jù)源,。開放數(shù)據(jù)庫連接(Open DateBase Conection,,ODBC)是Windows Open Server(開放服務)API(WOSA)產(chǎn)品之一。一個數(shù)據(jù)源是對數(shù)據(jù)庫的一個命名連接,。對于應用程序要連接的不同類型的數(shù)據(jù)庫,,都需要一個ODBC 驅(qū)動程序。ODBC API主要是為客戶/服務器的RDBMS使用設(shè)計的,,但是ODBC驅(qū)動程序也可以用于連接桌面數(shù)據(jù)庫文件,、工作表和平面文件。ODBC使用 Odbcinst.dll庫來設(shè)置和清除數(shù)據(jù)源,。Odbcad32.exe是一個用于建立ODBC數(shù)據(jù)源的獨立的32位可執(zhí)行應用程序,,在控制面板中有其 對應的圖標Control Panel。 ODBC驅(qū)動管理程序為數(shù)據(jù)源打開ODBC驅(qū)動程序 并將SQL語句傳送給驅(qū)動程序,。在客戶/服務器RDBMS處理完一個select查詢后,,ODBC驅(qū)動程序?qū)⒅捣祷亟o應用程序。當執(zhí)行一個insert,、 update或delete語句時,,驅(qū)動程序返回查詢所影響的行數(shù)。 下面介紹PHP使用ODBC連接Access數(shù) 據(jù)庫的方法,。用$connstr="DRIVER= Microsoft Access Driver (*.mdb)來設(shè)置數(shù)據(jù)驅(qū)動,,函數(shù)realpath()用來取得數(shù)據(jù)庫的相對路徑。利用該方法連接Access數(shù)據(jù)庫主要應用到PHP的 odbc_connect()函數(shù),,該函數(shù)聲明如下: resourse odbc_connect( string dsn, string user, string password [, int cursor_type]) dsn:系統(tǒng)dsn名稱,。 user:數(shù)據(jù)庫服務器某用戶名。 password:數(shù)據(jù)庫服務器某用戶密碼,。 cursor_type:游標類型,。 代碼如下: $connstr="DRIVER=Microsoft Access Driver (*.mdb); DBQ=".realpath("bookinfo.mdb"); $connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC
); 自己測試成功的代碼,使用PDO的ODBC連接,,注意要在php.ini里取消pdo_odbc.dll的備注,。 $db = new PDO("odbc:driver={microsoft access driver (*.mdb)};dbq=" . realpath("mydb.mdb")) or die("Connect Error"); ADO技術(shù)基于通用對象模型(COM),,它提供了多 種語言的訪問技術(shù),。PHP是通過預先定義類COM來使用ADO方法操縱Access數(shù)據(jù)庫的。該類詳細說明如下: string com::com( string module_name [, string server_name [, int codepage]]) module_name:被請求組件的名字或 class-id,。 server_name:DCOM服務器的名字,。 Codepage:指定用于將PHP字符串轉(zhuǎn)換成 UNICODE字符串的代碼頁,反之亦然,。該參數(shù)的取值有CP_ACP,、CP_MACCP、CP_OEMCP,、CP_SYMBOL,、 CP_THREAD_ACP,、CP_UTF7和CP_UTF8,。 PHP利用com類并使用ADO方法訪問數(shù)據(jù)庫的代 碼如下: $conn = new com("ADODB.Connection"); $connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("bookinfo.mdb "); $conn->Open($connstr); |
|