2012-02-09 15 views
11

私は今何時間もgoogledしています。PHPのODBC接続()とアクセス - アーキテクチャの不一致

私のような無数の記事読みました:Is there a Windows 7 ODBC driver for Access?

を私はODBC管理の両方を使用して試してみました - そして、正常の両方のためにそこのシステムDSNを追加するために管理している:

  • Microsoft Accessデータベース
  • マイクロソフトはデータベースにアクセスします

ローカルに保存されたAccess DBに接続しようとすると:

odbc_connect('Aquarius2', '', ''); 

私は次のエラー(複数可)を取得:

odbc_connect(): SQL error: [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application, SQL state IM014 in SQLConnect in C:\export\export.php on line 3

簡単なスクリプトは、最新のアクセス・ドライバをインストールしようとした - Aquarius2は私のDSNの名前はまだ失敗です。

アイデアがありません - 何が欠けていますか?

よろしく、

アレックス
+2

32ビットまたは64ビットdsnを使用していますか? –

答えて

17

あなたは32ビットODBCドライバ、またはその逆で64ビットアプリケーションを使用しようとしています。 ODBC on 64-bit Windows Platformsを見てください。

PHPアプリケーションが最初に64ビットか32ビットかを判断する必要があります。

その後、適切なODBC管理者を開始する必要があることが確認されたら、そのうちの2つ、32ビット用と64ビット用の2つがあります。 64ビットODBC管理者は管理ツール、コントロールパネルにあり、32ビットのものは%windir\syswow64\odbcad32.exeです。

アプリケーションアーキテクチャを適切なODBC管理者に一致させたら、システムDSNを作成する必要があります。管理者のMS Accessドライバが見つからない場合は、そのアーキテクチャのMS Accessドライバをダウンロードする必要があります。 64ビットMS Access ODBCドライバがあるかどうかはわかりません。存在しない場合は、アプリケーションのアーキテクチャを変更する必要があります。

The article I referenced詳細情報があります。

+0

私はすでにすべてのことをしていると思いますが、それは32/64ビットのミスマッチのようなものですが、私はなぜそれがわかりません。 –

+0

私はそれをもっと明確にするために私の答えを言い換える方法を知らない - 申し訳ありません。 – bohica

+0

アプリケーションはPHPを使用しています。odbc_x()API - phpinfo()を実行すると、ODBC APIがwin32であることがわかります。 –

4

もう1つの注意点:64ビットWampServerをインストールした場合、Apache、MySQL、PHPなど64ビット版がインストールされます。 32ビット版PHPを使用したい場合は、PHP downloads pageに移動し、 'win32'のいずれかを選択してください。そして、あなたのアプリケーションを実行するときにあなたのPHPパスを変更することを忘れないでください!これに加えて、32ビットのODBC管理者 - %windir\syswow64\odbcad32.exeを設定することもできます。

+0

私はwampServerの64bit版をインストールしましたが、PHP_INT_MAX定数は2^31-1と等しいので、PHPは何とか32ビットだと思いました。今すぐ32ビットwampserverをダウンロードし、私の指を守ってください。 – Mchl

+0

はい。出来た! wampserverのバージョンを切り替えるのはちょっとしたPITAですが。 – Mchl

関連する問題