Nếu phiên bản của bạn là SQL Server Express, có lẽ bạn nên sử dụng:
$objConnect = mssql_connect("localhost\SQLEXPRESS","usr","pass");
Hoặc nếu nó là một phiên bản được đặt tên khác, thì
$objConnect = mssql_connect("localhost\InstanceName","usr","pass");
Nếu bạn cần kết nối từ xa, thì rõ ràng bạn không nên sử dụng localhost
vì máy chủ web từ xa định vị của bạn như thế nào localhost
? Bạn nên sử dụng một trong các cách sau (giả sử máy chủ web từ xa có thể thấy máy của bạn có địa chỉ 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");
Tất nhiên tường lửa của bạn phải mở cổng 1433 (và có thể là 1434) để chấp nhận kết nối đó và có nhiều thứ khác cũng có thể xảy ra sự cố ở đây.
Tuy nhiên, một gợi ý 101 gỡ lỗi nhỏ. Thay vì:
if($objConnect)
{
echo "Database Connected.<br />";
echo mssql_error();
}
else
{
echo "Database Connect Failed.<br />";
}
Tại sao không:
if($objConnect)
{
echo "Database Connected.<br />";
}
else
{
echo "Database Connect Failed.<br />";
echo mssql_error();
}
Chắc chắn bạn không cần phải ghi lỗi vào trang khi cơ sở dữ liệu kết nối thành công. Và việc cho chúng tôi biết thông báo lỗi thực tế mà bạn nhận được có thể giúp chúng tôi trang bị tốt hơn để chỉ cho bạn hướng giải quyết. Thông báo chung chung "Kết nối cơ sở dữ liệu không thành công" mà bạn đã viết sẽ không cung cấp cho bất kỳ ai manh mối nào về những gì thực sự đã xảy ra. Nhưng tôi cá là mssql_error()
có thể!