以前は Silverlight でアプリケーションを開発していましたが、現在は HTML5 に移行しています。よりオープン ソースなアプローチへの移行の一環として、PHP を使用して .NET の代わりに MSSQL データベースにリンクすることを検討しています。このアプローチを採用しない正当な理由はありますか? (MSSQL と Windows を維持する必要があります)
2 に答える
PHP.Netによると、MSSQL データベースを処理する関数はたくさんあります。
とにかく、MICROSOFTがOfficial SQL Server Siteと言うように、最初にドライバーをロードする必要があります
SQL Server 2005 Driver for PHP は、Microsoft ダウンロード センターからダウンロードできます。ダウンロードには、php_sqlsrv.dll と php_sqlsrv_ts.dll の 2 つの .dll ファイルが含まれています。SQL Server 2005 Driver for PHP のロードは、PHP 拡張機能のロードに似ています。
- 拡張ファイル (php_sqlsrv.dll または php_sqlsrv_ts.dll) を PHP 拡張ディレクトリに配置します。
拡張子を含めるように php.ini ファイルを変更します。ロードするドライバーのバージョン (非スレッドセーフまたはスレッドセーフ) に応じて、php.ini ファイルの Dynamic Extensions セクションに次のいずれかの行を追加する必要があります。
拡張子=php_sqlsrv.dll
拡張子=php_sqlsrv_ts.dll
Web サーバーを再起動します。
APIを楽しむ
SQL Server 2005+ Driver for PHPを構成する必要があるすべての後、3 つの構成オプションがあります。
- LogSubsystems このオプションを使用して、サブシステムのロギングをオンまたはオフにします。既定の設定は SQLSRV_LOG_SYSTEM_OFF です (ログは既定でオフになっています)。
- LogSeverity このオプションを使用して、ロギングがオンになった後に何をログに記録するかを指定します。既定の設定は SQLSRV_LOG_SEVERITY_ERROR です (ログ記録が有効になった後、既定ではエラーのみがログに記録されます)。
- WarningsReturnAsErrorsデフォルトでは、Driver for PHP は sqlsrv 関数によって生成された警告をエラーとして扱います。この動作を変更するには、WarningsReturnAsErrors オプションを使用します。このオプションのデフォルト設定は true です。
注 この規則には例外があります。たとえば、データベース コンテキストを変更することによって生成された警告は、エラーとして扱われることはありません。
最後に、サーバーへの接続を確立するために *sqlsrv_connect* 関数を使用することに注意する必要があります。
$serverName = "(local)";
$connectionOptions = array("Database"=>"myDatabase");
/* Connect using Windows Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionOptions);
if( $conn === false )
{ die( FormatErrors( sqlsrv_errors() ) ); }
既定では、sqlsrv_connect 関数はWindows 認証を使用して接続を確立します。ほとんどのシナリオでは、これは、エンド ユーザーの ID ではなく、Web サーバーのプロセス ID またはスレッド ID (Web サーバーが偽装を使用している場合) がサーバーへの接続に使用されることを意味します。
sqlsrv_connect 関数は、$serverName と $connectionOptions (オプション) の 2 つのパラメーターを受け入れます。
$serverNameこの必須パラメーターは、接続するサーバーの名前を指定するために使用されます。上記のコードでは、ローカル サーバーへの接続が確立されます。このパラメーターは、SQL Server インスタンスまたはポート番号を指定するためにも使用できます。例えば:
$serverName = "myServer\instanceName";
-また-
$serverName = "myServer, 1521";
- $connectionOptionsこのオプションのパラメーターは、接続のオプションを設定するキーと値のペアの配列です。詳細について
は、製品ドキュメントの「sqlsrv_connect」を参照してください。
注: SQL Server 認証を使用してサーバーにログインするには、$connectionOptions パラメーターで UID および PWD オプションを設定する必要があります。
注 例に示されている FormatErrors 関数は、エラー出力を書式設定するためのカスタム関数です。
私は php (Windows Server 2003 および 2008 の IIS で実行) と Microsoft SQL Server (2008 および 2008R2) を高可用性の運用環境で約 2 年間使用しています。
PHP から SQL サーバーへのドライバーは、最初は少し不安定でしたが、最新のドライバーを入手する限り、非常に堅牢です。
PHP と SQL Server の組み合わせは、私の環境では .net 実装よりも優れたパフォーマンスを発揮します。