php+access連線資料庫常用的方式一般有兩種.
1.通過建立odbc驅動,再用php 的odbc_connect()函式連線.
如:$connstr=driver=;
dbq=".$db;
$connid=odbc_connect($connstr,"username","password",sql_cur_use_odbc);
2.用oledb方式連線,再呼叫 open方法開啟
如:$conn=new com("adodb.connection");
$connstr="provider=microsoft.jet.oledb.4.0;data source=".$db;
$conn->open($connstr);
但這二種方法怎麼連線都出錯,去網上找資料,有的說是沒有賦予everyone許可權,有的說是access97
和access2000的驅動不一樣(就是資料庫是2000建的,讀取用的驅動是97的.)造成的.
在開發php時也延續了這個習慣,用realpath加資料庫的相對路徑來獲取資料庫的位址.比如:$db=realpath("../db.mdb");
但asp
的include函式和php的include函式在處理包含檔案的方式似乎不同,造成了php在不同目錄下包含conn.php檔案連線資料庫出現"常見錯誤
不能開啟登錄檔關鍵字",
或uncaught exception 'com_exception' with message 'source:
providerdescription: 驗證失敗。' 的錯誤.
錯誤1
php連線access 資料庫常見問題
以下為引用的內容:
warning: odbc_connect() [
function.odbc-connect
]: sql error: [microsoft][odbc microsoft access driver]常見錯誤
不能開啟登錄檔關鍵字 'temporary (volatile) jet dsn for process 0xdd0 thread
0xcb8 dbc 0x14bd024 jet'。, sql state s1000 in sqlconnect ine:\wwwroot\phperz.com\phpweb\conn.phpon line8
出現這種錯誤證明你使用的是odbc的access驅動,就是上面說的第一種連線資料庫的方法$connstr=driver=; dbq=".$db;
並且你當前訪問的檔案和你的conn.php資料庫連線檔案不在同一目錄下,包含conn.php時用的相對路徑,比如
include("../conn.php"),由於php處理include函式裡的檔案和 asp的不同,
造成了資料庫路徑上的錯誤,
解決方法:
1,檢查你資料庫的路徑,是不是用realpath()函式加相對路徑來獲取的,
以下為引用的內容:
比如:$db=realpath("../db.mdb");
例:$db=$_server['document_root']."\db.mdb";
2,檢查許可權,賦予他everyone許可權
3,換種連線方式,微軟的odbc驅動存在一些不穩定的bug,有可能導致此類錯誤,據說微軟本身已經放棄了對odbc資料來源連線方式的支援,並建議使用者使用oledb方式,應該將連線字串改為如下方式:
"provider=microsoft.jet.oledb.4.0;data source=".$db;
錯誤2:
fatal error: uncaught exception
'com_exception' with message 'source: providerdescription: 驗證失敗。'
in e:\wwwroot\phperz.com\phpweb\conn.php:7 stack trace: #0
e:\wwwroot\phperz.com\phpweb\conn.php(7):
com->open('provider=micros...') #1
...............
這種錯誤說明你用的是oledb的方式連線的資料庫,並且也是資料庫的路徑造成的.
解決方法同上,用$_server['document_root']."\db.mdb";方法獲取資料庫位址
錯誤3:
warning: odbc_connect() [
function.odbc-connect
]: sql error: [microsoft][odbc 驅動程式管理器] 未發現資料來源名稱並且未指定預設驅動程式, sql
state im002 in sqlconnect ine:\wwwroot\phperz.com\phpweb\conn.phpon line8
odbc 驅動方式連線的資料庫,錯誤原因多半是你的連線字串寫錯了,完整的連線字串應該是:
$db=$_server['document_root']."\db.mdb";
$connstr="driver=;dbq=$db;uid=admin;pwd=pass";
$connid=odbc_connect($connstr,"admin","pass",sql_cur_use_odbc) or
如果你的資料庫沒有密碼以上uid和pwd可以省略
$connstr="driver=;dbq=$db";
$connid=odbc_connect($connstr,"","",sql_cur_use_odbc) or
錯誤4:
fatal error: uncaught exception
'com_exception' with message 'source: adodb.connectiondescription:
未找到提供程式。該程式可能未正確安裝。' in......................
oledb連線方式,錯誤原因同上,完整的連線字串應該是:
$db=$_server['document_root']."\db.mdb";
$conn=new com("adodb.connection");
$connstr="provider=microsoaft.jet.oledb.4.0;data
source=".$db;
$conn->open($connstr);
PHP連線ACCESS資料庫
在學習php的com 和 net windows 函式的時候,發現了乙個通過com操作sql server的例子,查詢了相關的資料,於是就有了這篇php連線access的文章,相信網上已經很多了,還是貼在這裡吧。我的機器環境 win2000,apache2,php version 5.1.0rc1 ...
php連線access資料庫
在一次access資料庫匯入到mysql資料庫的時候,怎麼也連線不上access,最後還是連線上了,看下面 原創文章,程式設計師人生 www.wfuyu.com 連線上之後,迴圈輸出來,然後update到mysql資料庫中,這樣就實現了access資料庫轉mysql資料庫 conn new com ...
連線ACCESS資料庫
1 匯入命名空間空間 system.data.oledb 2 建立指向資料庫的連線 建立連線要用到system.data.oledb命名空間中的類 oledbconnection。通過以下語句可以完成對本地資料庫的連線工作 string strconnect provider microsoft.j...