5

MS SQL Server 2000 上に構築された従来のビジネス アプリケーションがあります。PHP 5.2 と mssql 拡張機能を使用してこのデータベースにアクセスする Web ベースのユーティリティがいくつかあります。

Web サーバーを再インストールする必要があり、PHP 5.4 にアップグレードすることを楽しみにしていました。残念ながら、mssql 拡張機能は PHP 5.3 以降ではサポートされていません。Microsoft から利用可能な sqlsrv 拡張機能がありますが、説明によると、SQL Server 2005 以降へのアクセスのみがサポートされています。

PHP 5.4 から SQL Server 2000 に接続するにはどうすればよいですか? 誰かがすでにこの問題を解決しましたか?

4

1 に答える 1

13

これは本当に複雑な問題です。互換性 (非) 互換性の詳細を次に示します。これにより、他の誰かが検索と試行に費やす時間を短縮できます。

Microsoft の PHP 拡張機能 sqlsrv

sqlsrv には 2 つの (+ 非公式の) バージョンがあり、32 ビット PHP とのみ互換性があります。現在、64 ビット PHP のバージョンはありません。

  • sqlsrv バージョン 2.0 は、PHP 5.2.4 から 5.3.x および SQL Native client 2008 R2 と互換性があり、Microsoft SQL Server 2000、2005、または 2008 に接続します。
  • sqlsrv バージョン 3.0 は、PHP 5.3.0 から 5.4.x および SQL Native client 2012 と互換性があり、Microsoft SQL Server 2005、2008、2008 R2、および SQL Server 2012 に接続します。
  • 現在、PHP 5.5 をサポートする公式バージョンはありません
  • Rob's Area には、SQL Native client 2012 を必要としない非公式バージョンの SQLSRV 3.0がありますが、以前の SQL Native クライアントで実行する必要があります。私はまだこれを試していません。

PHP の ODBC 拡張

PHP 5.4 で SQL Server 2000 にアクセスするもう 1 つの方法は、odbc 拡張機能を使用することです。SQL Server 2000 用の 3 つの ODBC ドライバーを使用して接続できます。

  • Windows 2008 R2 にプレインストールされている SQL Server ODBC クライアント バージョン 6.00
  • SQL Server Native Client 9.0 (SQL Server 2005 機能パック)
  • SQL Server ネイティブ クライアント 10.0 (SQL Server 2008 R2 機能パック)

これらの各 ODBC ドライバーの接続のコードは次のとおりです。

$connection_string = 'DRIVER={SQL Server};SERVER=mbsql;DATABASE=vg1';
$connection_string = 'DRIVER={SQL Native Client};SERVER=mbsql;DATABASE=vg1';
$connection_string = 'DRIVER={SQL Server Native Client 10.0};SERVER=mbsql;DATABASE=vg1';
$connection = odbc_connect( $connection_string, $user, $pass );

これらの接続は、PHP 32 ビットおよび 64 ビットで動作します。私はまだどれが最高かをテストしていません。

于 2013-11-05T11:06:56.653 に答える