-2

以前は Silverlight でアプリケーションを開発していましたが、現在は HTML5 に移行しています。よりオープン ソースなアプローチへの移行の一環として、PHP を使用して .NET の代わりに MSSQL データベースにリンクすることを検討しています。このアプローチを採用しない正当な理由はありますか? (MSSQL と Windows を維持する必要があります)

4

2 に答える 2

1

PHP.Netによると、MSSQL データベースを処理する関数はたくさんあります。

とにかく、MICROSOFTOfficial 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 拡張機能のロードに似ています。

  1. 拡張ファイル (php_sqlsrv.dll または php_sqlsrv_ts.dll) を PHP 拡張ディレクトリに配置します。
  2. 拡張子を含めるように php.ini ファイルを変更します。ロードするドライバーのバージョン (非スレッドセーフまたはスレッドセーフ) に応じて、php.ini ファイルの Dynamic Extensions セクションに次のいずれかの行を追加する必要があります。

    拡張子=php_sqlsrv.dll

    拡張子=php_sqlsrv_ts.dll

  3. Web サーバーを再起動します。

  4. 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 関数は、エラー出力を書式設定するためのカスタム関数です。

于 2013-02-01T18:16:38.293 に答える
0

私は php (Windows Server 2003 および 2008 の IIS で実行) と Microsoft SQL Server (2008 および 2008R2) を高可用性の運用環境で約 2 年間使用しています。

PHP から SQL サーバーへのドライバーは、最初は少し不安定でしたが、最新のドライバーを入手する限り、非常に堅牢です。

PHP と SQL Server の組み合わせは、私の環境では .net 実装よりも優れたパフォーマンスを発揮します。

于 2013-02-01T19:56:46.800 に答える