ホームページ >バックエンド開発 >PHPチュートリアル >php5.3 が SQL Server2008 に接続できませんでした。助けてください。
PHP バージョンは 5.3.22 で、非スレッドセーフです
データベース SQL サーバー 2008 R2、同じサーバー上ではなく、LAN
IIS6.0 win2003
Baidu に従ってインストールされています
Microsoft SQL Server 2008 R2 ネイティブ クライアント (sqlnlci.msi)
PHP 2.0 のサーバードライバーの SQL php_pdo_sqlsrv_53_nts_vc6.dll
と php_sqlsrv_53_nts_vc6.dll
は、最終的に php.info に拡張機能を追加しましたが、データベースに接続するときにエラーが再び報告されました。私は初心者であり、これに取り組んでいます。本当に仕方がありません、助けてください
これは phpinfo にロードされます
接続コードは次のとおりです
$pwd="1234";
$db_name="test ";
$serverName="155.46.2.23";
$connectionInfo=array("UID"=>$uid,"PWD"=>$pwd,"Database"=>$db_name);
$ conn = sqlsrv_connect( $serverName,$connectionInfo);
if($conn==false)
echo"接続できませんでした。";
die( print_r( sqlsrv_errors(), true)); echo"sqlserver connect .";
エラー報告
データベースもリモートであり、TCP/IP パイプが有効になっています 1433
助けてください、マスター
に返信議論(解決策)
同じサーバー上にないため
SQL サーバー リモート アクセス サービスを開いて認証する必要があります
SQL サーバー リモート アクセスは、ログインしているアカウントを許可することを意味しますか?
データベースのリモート接続が許可されていることを確認しました。これに従ってください
構成は同じです
例接続するときに、IP アドレス、データベース名、ユーザー名、パスワードが使用されていませんか?インスタンス名はどうやって指定するのでしょうか?sqlnlci のバージョンなのか、それとも設定エラーがあるのか、いくつか疑問があります。もう一度確認してください。
sqlsrv_connect( string $serverName [, array $connectionInfo])
パラメータ
$serverName: a string : 接続先のサーバーの名前を指定します。この文字列には、インスタンス名 (たとえば、「myServerinstanceName」) またはポート名 (たとえば、「myServer, 1521」) を含めることができます。このパラメータで使用可能なオプションの詳細については、「文字列キーワードの SQL ネイティブ クライアント サーバー キーワードでの接続文字列キーワードの使用」の「ODBC ドライバー接続文字列キーワードのサーバー キーワード」セクションを参照してください。
接続コードは次のとおりです
$pwd="1234";
$db_name="test"; .2.23" ;
$connectionInfo=array("UID"=>$uid,"PWD"=>$pwd,"Database"=>$db_name);
さらに、 $serverName="155.46.2.23,1433"; も試しました
ポート番号 TCPプロバイダーになってエラー報告
ポート番号を追加してみる
以前はマシン名を使用していました(IPで接続できませんでした)
ポート番号を追加するとエラーになりましたこのように
どう思いますか? SQL サーバーのネットワーク構成に問題があると誰もが考えていますが、インターネット上で言及されているリモート接続はすべて構成されています。何か影響はありますか?
まず、クライアントを使用してデータベースに接続できるかどうかを試し、パラメーターとネットワーク構成に問題がないことを確認してください。
先生、ローカルサーバーのセキュリティポリシーにオープンポートの送信および受信ルールがないかどうか、および相手のサーバーにオープンポートがあるかどうかを確認できます
ネットワーク管理者、皆さんのご返信ありがとうございます。 LAN のせいでデータベースが置かれているサーバーが修正されましたが、アクセスは制限されていますが、開いた後は接続できます。落とし穴はどこにでもあります。 。 。 。 。 。