エディションがSQLServerExpressの場合は、おそらく次のものを使用する必要があります。
$objConnect = mssql_connect("localhost\SQLEXPRESS","usr","pass");
または、それ以外の場合は名前付きインスタンスの場合、
$objConnect = mssql_connect("localhost\InstanceName","usr","pass");
リモートで接続する必要がある場合は、明らかにlocalhost
を使用しないでください。 リモートウェブサーバーはどのようにしてあなたのを見つけるのでしょうか localhost
?次のいずれかを使用する必要があります(リモートWebサーバーがIPアドレス192.168.5.22のマシンを認識できると想定):
$objConnect = mssql_connect("192.168.5.22\SQLEXPRESS","usr","pass");
$objConnect = mssql_connect("192.168.5.22\NamedInstance","usr","pass");
$objConnect = mssql_connect("192.168.5.22","usr","pass");
もちろん、ファイアウォールでその接続を受け入れるには、ポート1433(場合によっては1434)を開いている必要があります。また、ここでも問題が発生する可能性のあるさまざまな問題があります。
ただし、少しデバッグ101の提案。代わりに:
if($objConnect)
{
echo "Database Connected.<br />";
echo mssql_error();
}
else
{
echo "Database Connect Failed.<br />";
}
理由:
if($objConnect)
{
echo "Database Connected.<br />";
}
else
{
echo "Database Connect Failed.<br />";
echo mssql_error();
}
確かに、データベースが正常に接続されたときに、ページにエラーを書き込む必要はありません。また、実際に受け取ったエラーメッセージをお知らせいただくと、解決策の方向性を示すことができます。あなたが書いた一般的な「データベース接続に失敗しました」というメッセージは、実際に何が悪かったのかについての手がかりを誰にも与えません。しかし、私はmssql_error()
に賭けます かもしれない!