php連線Access資料庫錯誤及解決方法

2022-04-29 04:03:09 字數 3368 閱讀 1564

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...