2017-04-27 6 views
0

何らかの理由でPHPアプリケーションでms-accessを使用する必要があるため、WAMPでphp_pdo_odbc拡張を有効にしました。どのように表示されるphpinfo()ODBCを使用してmsaccessとPHP PDO接続を作成すると致命的なエラーが発生する

しかし、私はデータベースに接続できません、次のエラーを返します。

(!) Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified' in C:\wamp64\www...\portals...\config.php on line 15

(!)> PDOException: SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified in C:\wamp64\www...\portals...\config.php on line 15

$db_username = ''; //username 
$db_password = ''; //password 

//path to database file 
$database_path = "StudentLogInData.mdb"; 

//check file exist before we proceed 
if (!file_exists($database_path)) { 
    die("Access database file not found !"); 
} 

//create a new PDO object 
$database = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=realpath($database_path); Uid=$db_username; Pwd=$db_password;"); 

私は、Windows 7(64ビット)上のWAMPの64ビットバージョンを使用しています。たとえば、Stackoverflowのソリューションの検索された多くの32ビットバージョンを実行しようとしましたが、64ビットにインストールすることはできません。それを動作させる方法を手伝ってください?

答えて

2

realpath()は、ODBCドライバが理解できるものではなく、PHP関数です。あなた可能性DSNからそれを削除する:ドライバ名程度として

$database_path = realpath("StudentLogInData.mdb"); 
$database = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=$database_path; Uid=$db_username; Pwd=$db_password;"); 

、あなたはスタートメニューでODBCを入力し、指定された名前は、あなたのドライバータブで利用可能であることを確認する必要があります。

ODBC Manager

+0

完了。同じエラーが発生し、DSN文字列でもフルパスを試しましたが、同じエラーが発生しました。私はこれが64ビット版でなければならないと感じています。 – yaqoob

+1

申し訳ありませんが、「Microsoft Access Driver(* .mdb、* .accdb)」を提供するドライバを既にインストールしていることを前提としていました。https://www.microsoft.com/en-US/download/details.aspx ?id = 13255 –

+0

私はそれをインストールし、マシンを再起動しましたが、同じエラーです。そして私はMS Accessがリストされていないドライバタブをチェックしました。 screenshot http://imgur.com/a/l4hCL – yaqoob

関連する問題