ホームページ  >  記事  >  バックエンド開発  >  PHPがMSSQLデータベースに接続できない問題について_PHPチュートリアル

PHPがMSSQLデータベースに接続できない問題について_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:03:36717ブラウズ

今日、新しいサーバーを構成しました。構成は IIS php です。実行中に、php がリモート mssql データベースに接続するときにエラーが見つかりました。エラー コードは次のとおりです。 警告: mssql_connect(): サーバーに接続できません:

考えてみれば、以前は大丈夫だったのに、何が起こったのでしょうか?その後、オンラインで検索して記事を見つけましたが、php を使用して mssql に接続するにはサーバーに mssql をインストールする必要があることがわかりました。当初は新しいサーバーで mssql を使用する必要はありませんでした。はい、mssql をインストールすれば問題ありません。

Linux で Apache PHP だったらどうなるだろうか、mssql をインストールするのは不可能だ、と考えました。ははは、めまいがします。

以下は私が見つけた記事です。

PHP設定:
php.iniファイルで次のように設定し、
を見つけます ;extension=php_mssql.dll の前のセミコロンを削除します
extension_dir = d:extension を見つけます
php.ini に d:extension が存在しない可能性があります
php_mssql.dll を別の場所に移動していない場合は、php インストール ディレクトリの下の extensions ディレクトリにあるパスに変更します (php インストール パスが d:php であると仮定します)。 これを extension_dir=d:phpextensions に変更するだけです
次に、Webサーバーを再起動します


これは非常に簡単ですが、このような設定を完了しても、次のようなエラーメッセージが表示されて接続できません。
MS SQL Server データベース接続エラー! データベースのホスト変数の設定が正しいかどうかを確認してください!!!

ホストの変数設定を何度も確認しましたが、それらの設定に問題はありませんでした。Web を閲覧したところ、次の手がかりを見つけました。

php.com 情報:

PHP から SQL Server 2000 に接続しようとしています
次の警告に遭遇しました:
警告: mssql_connect(): サーバーに接続できません: SERVERPortal
......5行目

5行目には次のようになります:
$db_connect = mssql_connect('SERVERPortal', 'sa', 'my_passwd');

以下のことを行いました
1.PHP.ini で php_mssql.dll 拡張機能を有効化
2.ntwdblib.dll を含むすべての dll が適切な場所 (System32 または PHP フォルダー) にあります

ウェブでプロフィールをたくさん検索しましたが、解決するための適切な答えをくれる人は誰もいませんでした。

数時間後、問題の原因が
であることがわかりました。 ntwdblib.dll 、古い ntwdblib.dll を新しい
に置き換えたときのバージョンは 7.00.839 です
ntwdblib.dll のバージョンは 8.00.194 で、すべての問題は解決されました。

Windows 2003 では MSSQL に関する問題がいくつかありました (よく読んでください)。
同じウィンドウが 2 つあり、php、php-ini、すべてがマシンでしたが、接続できたのは 1 つだけでした。

エラーメッセージが表示されて接続できませんでした

最後にntwdblib.dllのバージョンを確認したところ、PHPで配布されているバージョンは7.00でした....

SQL Server インストールのバージョンは 8.00 だったので、これをコピーしました

php と apache ディレクトリで動作しました。

このようにして問題が見つかり、問題の原因はntwdblib.dllでした

ntwdblib.dll の主な機能は、SQL サーバー接続サービスを提供することです。

私が使用している PHP のバージョンは 4.3.9 です。インストールされているサーバーの Windows/system32/ で、ntwdblib.dll ファイルのバージョンが 2000.2.8.0 であることがわかりました。これは、インストール時にこのバージョンが SQL Server 7.0 をサポートしているためです。 PHP DLL 下のすべてのファイルをシステムに上書きします

ディレクトリなので、それを使用してSQL Server 2000に接続すると、当然接続できなくなります。

その後、SQL Server 2000 が正常にインストールされているサーバー上の ntwdblib.dll のバージョンが 2000.80.2039.0 であることがわかり、このファイルをコピーして以前のバージョンを上書きしたところ、サーバーを再起動したところ、すべて正常になりました。

補足: データベース名が数字で始まる場合は、開くことができないというメッセージも表示されます。このとき、データベース名に角括弧 [ ]
を使用します。 123bbs を [123bbs] に書き換えれば問題ありません。また、データベース名が SQL Server の予約語と競合する場合にもこの問題は解決されます。角括弧を使用して。
最終的に、PHP が SQL Server 2000 に正しく接続できないという問題が解決されました。ほとんど 1 日かかりましたが、今すぐ投稿することで、同じ問題に遭遇した兄弟たちが寄り道する必要がなくなります。



http://www.bkjia.com/PHPjc/630934.html

www.bkjia.com

http://www.bkjia.com/PHPjc/630934.html技術記事今日、新しいサーバーを構成しました。構成は IIS php です。実行中に、php がリモート mssql データベースに接続するときにエラーが見つかりました。エラー コードは次のとおりです: 警告: mssql_connect(): サーバーに接続できません。 .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。