ホームページ  >  記事  >  バックエンド開発  >  php5.3.x は MS SQL Server2008 に接続します

php5.3.x は MS SQL Server2008 に接続します

WBOY
WBOYオリジナル
2016-06-23 13:31:251034ブラウズ

オープニング

Bi She 先生のニーズにより、仮想旅行 Web サイトに必要なデータベースは MS SQL サーバーを使用する必要があります。

私の最も得意な Web プログラミング言語は PHP ですが、PHP で MS SQL サーバーにリンクするのは非常に面倒です。私の個人的な分析では、この問題の原因は PHP を使用する利点の 1 つが無料であるためです。 , MS SQL サーバーのグラフィカル インターフェイスは操作が簡単ですが、その高額なライセンス料金が MySQL の優れたパフォーマンスと強力なコミュニティ サポートと相まって、実際のエンタープライズ環境で PHP + MS SQL サーバーを使用する人が増えています。

実際、インターネット上の記事を見ると、一部の人がこの組み合わせ (PHP + MS SQL サーバー) を選択する理由は、システムのレガシーな問題のためです。たとえば、PHP プログラマーは企業 Web サイトで二次開発を必要とする場合、または会社が元々 MS SQL サーバー データベースを使用していた場合などです。つまり、12時間の努力の末、ついにコミュニケーションに成功したので、その過程と体験を以下に記録します。

1. MS SQL Server2008 Express データベースをインストールします

インストールプロセスは比較的簡単です。ただし、インストール時に設定したデータベース インスタンス名、またはデフォルトのデータベース インスタンス名に注意する必要があります。

1.1 データベースのデフォルトのインスタンス名

MS SQL Server2008 Express を例にとると、一般的なデフォルトのインスタンス名は SQLEXPRESS です。私が自分で設定したのはSQLSERVER、つまりSQLサーバーです。

1.2 データベースのログイン方法を設定する

将来データベースにアクセスするプログラムを作成するのに便利なように、sa ユーザーのパスワードを設定する必要があります。私の個人的なパスワードは「6 1s」です。

2. データベースにログインします

管理ツール: SQL Server Management Studio を使用して、管理用データベースにログインします。図1。

図 1 MS SQL Server2008 データベースへのログイン

2.1 へのログイン時に発生した問題

図 2 に示すように、ログイン時に問題が発生しました。

図 2 ログイン時に発生した問題

エラー メッセージは次のとおりです:

SQL Server への接続を確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、接続できません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けません) (Microsoft SQL Server、エラー: 53)

2.2 の問題の解決策

いくつかの解決策を調べた後、サーバー名を開くことができないことがわかりました。デフォルト: (ローカル) を入力します。コンピューター名インスタンス名という形式で入力する必要があります。図 3 に示すように、私を例に挙げてみましょう。

図 3 正しいログイン情報の入力

データベースにログインできるため、インストールに問題がないことを意味します。次にPHPに関する設定を行います。

3 PHP 用の適切なライブラリ ファイルを準備します

PHP5.3 以降、データベースに接続するためのネイティブ コードは Microsoft チームによって保守されています。必要なライブラリ ファイル (Windows では .dll ファイル) は PHP ソース コード パッケージには含まれていないため、個別にダウンロードする必要があります。

最良の選択は、PHP 公式ドキュメントを参照することです。

http://php.net/manual/zh/book.sqlsrv.php

3.1 Microsoft SQL Server 2012 Native Client をダウンロードしてインストールします

余談になりますが、このステップはブログを書いているときに行うものです。PHP マニュアルを読んでください。たった今それを知りました。初めて操作したときに php エラーが発生したのも不思議ではありません。中国語の意味は「このマシンには Microsoft SQL Server 2012 Native Client がインストールされていません」でした。カイライは英語が得意で、公式文書を読めることは王様です!

次の URL で Microsoft SQL Server 2012 Native Client をダウンロードします:

http://php.net/manual/zh/sqlsrv.requirements.php

3.2 PHP 用の適切な Microsoft SQL Server ドライバーをダウンロードします

公式からPHP5.3.xに対応する該当プログラムはSQLSRV 3.0であることが分かります。ダウンロード URL は次のとおりです:

http://www.microsoft.com/en-us/download/details.aspx?id=20098

3.3 適切なライブラリ ファイルを選択します

公式ドキュメントによると、ダウンロードしたプログラム SQLSRV30.EXE を解凍すると、8 つのドライバー ファイルが得られます (ドライバー ファイルは .dll で終わります)。図 4 に示すように。

図 4 SQLSRV30.EXE を解凍して展開した後

公式ドキュメントによると、php5.3 スレッドセーフ バージョンでは、php_pdo_sqlsrv_53_ts.dll と php_sqlsrv_53_ts.dll の 2 つのファイルを選択し、次の場所に配置する必要があります。内線php のルート ディレクトリにあるフォルダー。たとえば、私のマシンではパスは D:lampphp5ext です。

3.4 あなたの php がスレッドセーフかどうかを確認するにはどうすればよいですか?

phpinfo では、そのような情報をチェックします。図 5 に示すように。

図 5 phpinfo の出力情報

「enable」は、php がスレッドセーフなバージョンであることを意味し、それ以外の場合は非スレッドセーフです。

4. php.ini ファイルの設定

php.ini ファイルの設定については、以下の URL を参照してください。

http://msdn.microsoft.com/en-us/library/cc296203(v=sql.105).aspx

4.1 php に SQLSRV ドライバーをロードさせる

php.ini ファイルの拡張モジュール読み込み領域に、次の設定を記入して、php がデフォルトで SQLSRV ドライバーをロードできるようにします。

         extension=php_sqlsrv_53_ts.dll

4.2 php に PDO_SQLSRV ドライバーをロードさせる

4.1 と同じ位置に、次の設定を記入します。

         extension=php_pdo_sqlsrv_53_ts.dll

php で PDO ドライバーを有効にするには、PDO ドライバーも有効にする必要があります。

         extension=php_pdo.dll

4.3 pdo_sqlsrv が正常にロードされたかどうかを確認します

phpinfo に黄色の線が付いた単語が表示されれば、ロードが成功したことを意味します。図 6 に示すように。

図 6 phpinfo の出力

5. php の実行中に動的にロードする

php にはこのような魔法の機能があることを今知ったので、先ほど作成した php 設定ファイルを一時的にコメントアウトしてみましょう。ダイナミックローディング機能。

公式ドキュメントによると、dl()関数はphp5.3で廃止されました。このせいでテストできませんでした。

しかし、Microsoft の公式 PHP コードは次のとおりです:

 dl('php_pdo_sqlsrv_53_ts.dll');

6. 注意事項

MS SQL サーバーでは、user という名前のシステム テーブルがあるため、データ テーブルの名前を user と呼ぶことはできません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。