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時間の努力の末、ついにコミュニケーションに成功したので、その過程と体験を以下に記録します。
インストールプロセスは比較的簡単です。ただし、インストール時に設定したデータベース インスタンス名、またはデフォルトのデータベース インスタンス名に注意する必要があります。
MS SQL Server2008 Express を例にとると、一般的なデフォルトのインスタンス名は SQLEXPRESS です。私が自分で設定したのはSQLSERVER、つまりSQLサーバーです。
将来データベースにアクセスするプログラムを作成するのに便利なように、sa ユーザーのパスワードを設定する必要があります。私の個人的なパスワードは「6 1s」です。
管理ツール: SQL Server Management Studio を使用して、管理用データベースにログインします。図1。
図 1 MS SQL Server2008 データベースへのログイン
図 2 に示すように、ログイン時に問題が発生しました。
図 2 ログイン時に発生した問題
エラー メッセージは次のとおりです:
SQL Server への接続を確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、接続できません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けません) (Microsoft SQL Server、エラー: 53)
いくつかの解決策を調べた後、サーバー名を開くことができないことがわかりました。デフォルト: (ローカル) を入力します。コンピューター名インスタンス名という形式で入力する必要があります。図 3 に示すように、私を例に挙げてみましょう。
図 3 正しいログイン情報の入力
データベースにログインできるため、インストールに問題がないことを意味します。次にPHPに関する設定を行います。
PHP5.3 以降、データベースに接続するためのネイティブ コードは Microsoft チームによって保守されています。必要なライブラリ ファイル (Windows では .dll ファイル) は PHP ソース コード パッケージには含まれていないため、個別にダウンロードする必要があります。
最良の選択は、PHP 公式ドキュメントを参照することです。
http://php.net/manual/zh/book.sqlsrv.php
余談になりますが、このステップはブログを書いているときに行うものです。PHP マニュアルを読んでください。たった今それを知りました。初めて操作したときに php エラーが発生したのも不思議ではありません。中国語の意味は「このマシンには Microsoft SQL Server 2012 Native Client がインストールされていません」でした。カイライは英語が得意で、公式文書を読めることは王様です!
次の URL で Microsoft SQL Server 2012 Native Client をダウンロードします:
http://php.net/manual/zh/sqlsrv.requirements.php
公式からPHP5.3.xに対応する該当プログラムはSQLSRV 3.0であることが分かります。ダウンロード URL は次のとおりです:
http://www.microsoft.com/en-us/download/details.aspx?id=20098
公式ドキュメントによると、ダウンロードしたプログラム 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 がスレッドセーフかどうかを確認するにはどうすればよいですか?
図 5 phpinfo の出力情報
「enable」は、php がスレッドセーフなバージョンであることを意味し、それ以外の場合は非スレッドセーフです。
4. php.ini ファイルの設定
http://msdn.microsoft.com/en-us/library/cc296203(v=sql.105).aspx
extension=php_sqlsrv_53_ts.dll4.2 php に PDO_SQLSRV ドライバーをロードさせる
extension=php_pdo_sqlsrv_53_ts.dllphp で PDO ドライバーを有効にするには、PDO ドライバーも有効にする必要があります。
extension=php_pdo.dll4.3 pdo_sqlsrv が正常にロードされたかどうかを確認します
図 6 phpinfo の出力
5. php の実行中に動的にロードする
公式ドキュメントによると、dl()関数はphp5.3で廃止されました。このせいでテストできませんでした。
しかし、Microsoft の公式 PHP コードは次のとおりです:
dl('php_pdo_sqlsrv_53_ts.dll');
6. 注意事項