PHPでできるだけ多くの異なるデータベースに接続できるWebアプリを開発しようとしています。 PDO( http://www.php.net/manual/en/book.pdo.php )は適切なインターフェイスのようですが、すべての拡張機能に必要なすべての拡張機能をインストールするのに問題があります。必要なさまざまなPDOデータベースドライバー。
私はWindows7マシンでxamppを使用していることに注意してください。 PHPバージョン5.3.8。PDOドライバーはmysql、odbc、sqlite、sqlite2、sqlsrvを有効にしました。
私は以下にうまく接続しました:
私はインストールまたは接続する運がありませんでした:
データベース固有のドライバーを使用してこれら2つを回避できることはわかっていますが、必要なものすべてにPDOを使用したいと思っています。
PDO_DBLIBおよびPDO_OCIドライバーをインストールして有効にする方法を知っている人はいますか? Windowsマシン、またはPDOを使用してSybaseおよびOracleデータベースに接続する他の方法はありますか?
[〜#〜]更新[〜#〜]
OracleとPDO_OCIで正常に接続されました。あなたがする必要があることは次のとおりです:
適切なOracleInstant Client(instantclient_12_1など)をWindowsマシンにダウンロードしてインストールし、そのパスをSYSTEM環境変数のPATHに追加します。注Oracleは2つのバージョンのみをサポートしているため、クライアントのバージョンを適切に選択してください。それを実行してから、Apacheを再起動します。接続文字列はこことは大きく異なることに注意してください。これは私が使用したもののサンプルです。
$tns = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = ".$myServer.")(PORT = 1521)))(CONNECT_DATA=(SID=".$myDB.")))";
$connStr = "oci:dbname=".$tns;
$conn = new PDO($connStr,$myUser,$myPass);
[〜#〜]更新[〜#〜]
SybaseおよびPDO_ODBCに接続されています。必要なものは次のとおりです。
Skype ASE ODBC SDKに付属のドライバが必要です。使用されている接続文字列を以下に示します。
$connStr = "odbc:Driver={Adaptive Server Enterprise};server=".$myServer.";port=".$myPort.";db=".$myDB;
$conn = new PDO($connStr,$myUser,$myPass);
だから私はついに4つのデータベースに接続することができましたこれが私が管理した方法です:
MySQLusingPDO_MYSQL拡張機能はデフォルトでxamppにインストールされているようです '多くの仕事をしなければなりません。接続に使用したコードは次のとおりです。
$connStr = "mysql:Host=".$myServer.";dbname=".$myDB;
$conn = new PDO($connStr,$myUser,$myPass);
Microsoft SQL ServerPDO_SQLSRVを使用して http ://craigballinger.com/blog/2011/08/usin-php-5-3-with-mssql-pdo-on-windows/ 。これが私が使用したコードです:
$connStr = "sqlsrv:Server=".$myServer.";Database=".$myDB;
$conn = new PDO($connStr,$myUser,$myPass);
OraclewithPDO_OCI。適切なOracleInstant Client(instantclient_12_1など)をWindowsマシンにダウンロードしてインストールし、そのパスをSYSTEM環境変数のPATHに追加します。注Oracleは2つのバージョンのみをサポートしているため、クライアントのバージョンを適切に選択してください。それを実行してから、Apacheを再起動します。これが私が使用したコードです:
$tns = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = ".$myServer.")(PORT = 1521)))(CONNECT_DATA=(SID=".$myDB.")))";
$connStr = "oci:dbname=".$tns;
$conn = new PDO($connStr,$myUser,$myPass);
SybasewithPDO_ODBCSybase ASE ODBC SDKに付属のドライバ。使用したコードは次のとおりです。
$connStr = "odbc:Driver={Adaptive Server Enterprise};server=".$myServer.";port=".$myPort.";db=".$myDB;
$conn = new PDO($connStr,$myUser,$myPass);