2016-09-12 16 views
0

私はODBC接続を取得しようとしていますが、設定が正しいことを確認するための助けが必要です。 DBへの接続が機能していることを確認するためにPHPコードを書いて助けを得ることもできます。MS Access SetupのODBC

Windows Server 2008 R2マシンでは、C:\ Windows \ SysWOW64を参照してodbcad32を実行します。 (これは私が混乱し始めるところです...私が見てきたほとんどのページは、このためのかなり基本的な情報を与えています。)DBはMS Accessファイルです。どのタブを選択すればいいですか?ユーザーDSN ...システムDSN ...ファイルDSN?

正しいタブを選択したら、データソース名の入力に間違いはありませんか?たとえば、ファイルが 'it.accdb'であっても、データソース 'Employees'に「Employees.accdb」という名前を付けることはできますか?それとも実際のファイル名と一致する必要がありますか?

最後に、 PHPコードはDBに接続するのですか?DBは現在D:\ Temp \ IT.accdbです。システムDSNタブで、「Employees」のデータソース名で現在設定されているODBCを取得して、 。私は物事が、私は、データベースファイルを見つけられないで結果を試みたすべての様々なことを$ DBNAMEを変更しようとした

<?php 
$dbName = "Employees"; 

if (!file_exists($dbName)) { 
    die("Could not find database file."); 
} 
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb,*.accdb)}; DBQ=$dbName; Uid=; Pwd=;"); 

缶SOMを:DB私は、次のコードを試してみました。これで私を助けてくれる?

+0

PHPスクリプトはデータベースと同じコンピュータで実行されていますか? – ChristianF

+0

ライブデータベースは、リモート仮想サーバー(Windows Server 2008 R2)にあります。私は成功した接続を得るために、別の場所に移動してきたテストデータベースを作成しました。可能であれば、データベースを現在の場所に残したいと思っています。しかし、リモートデータベースに接続できない場合は、ライブデータベースをローカルの場所に移動します。 – egoche

+0

あなたの質問を明確にしてください:あなたのPHPコードは、Accessデータベースファイルが置かれている同じWindows Server 2008 R2マシンで実行されますか?そうでない場合は、他のWindowsのボックスで動作しますか?その場合、PHPコードは32ビットプロセスまたは64ビットプロセスとして実行されますか?データベースファイルは.accdbです。あれは正しいですか? –

答えて

0

ネットワーク経由でODBCデータソースにアクセスするには2通りの方法があります。データベースを含むネットワークドライブをマウントし、システムユーザーにそのユーザーに読み書きアクセス権を与えることができます(推奨するものではありません)。または、OpenLinkのようなODBC接続を使用してください。

DBをPHPコードと同じサーバーに移動する場合は、this sitepoint guideを参考にしてください。

後者の方が推奨され、最も簡単な方法です。このためには、データベースを含むサーバー上で "System-DSN"としてODBCソースを設定し、好きな名前を付けてください。 「システムデータベース」は「なし」にチェックする必要があります。ユーザー名とパスワードの設定をお勧めします。次に、このDSNを指すODBC要求ブローカーをインストールします。
クライアント側では、ODBCクライアントブリッジを設定し、リモートでDSNを使用するように設定します。そして、あなたがする必要があるすべては、PHPでこのようなDSN文字列を作成することです。それだけです

$dsn = "odbc:dsn_name"; 

ブローカーは設定に少し気を付けていますが、ガイドを読む限り、かなり簡単です。 OpenLinkにも試用版があるので、それがあなたのために働くかどうかを知ることができます。必要な部品を把握するために、Software selection wizardもあります。

この種のソフトウェアには他のプロバイダもありますが、私はOpenLinkでしか経験がありません。

+0

これらのオプションがこのプロセスで使用できる唯一のオプションであれば、PHPがインストールされているWebサーバーにデータベースを移動する傾向が強くなります。 (小さなプロジェクトのためにお金を要求しないようにしようとしています。)Web/PHPサーバーと同じシステム上にデータベースがある場合、ODBCドライバのセットアップが必要だと思うのですか?もしそうなら、それも "System-DSN"として設定されますか? – egoche

+0

私は自分の答えに2番目の段落を追加しました。この段落には、同じサーバー上にセットアップする方法に関するリンクがあります。いくつかのオープンソースおよび/または無償のODBCドライバもありますが、私たちが必要とした要件のために、私はそれらを調べていませんでした。彼らは私たちのユースケースをサポートしていなかったので。 – ChristianF

+0

ありがとう、クリスチャン。それは私がこのプロセスの間に見た多くのページの1つです...私はもう一度それを詳しく見ていきます。しかし、もう1つの質問... ODBC接続を作成するとき、私が決定できるものから実際のファイルと同じ名前である必要はないデータソース名を指定する必要があります。 (例えば、ファイル名は "One.accdb"とすることができますが、データソース名は "Two"にすることができます。または '$ dsn = "odbc:two"'? – egoche

関連する問題