Я использую этот код для подключения к SQL Server 2012, но он не работает
<?php $objConnect = mssql_connect("localhost","usr","pass"); if($objConnect) { echo "Database Connected.<br />"; echo mssql_error(); } else { echo "Database Connect Failed.<br />"; } mssql_close($objConnect); ?>
Он всегда печатает сообщение о сбое Database Connect Failed.
Также как я могу подключиться к локальному SQL Server с внешнего веб-сервера?
Если ваша версия SQL Server Express, вероятно, вы должны использовать:
$objConnect = mssql_connect("localhost\SQLEXPRESS","usr","pass");
Или, если это иначе именованный экземпляр, тогда
$objConnect = mssql_connect("localhost\InstanceName","usr","pass");
Если вам нужно подключиться удаленно, то, очевидно, вы не должны использовать localhost
так как удаленный веб-сервер находит ваш localhost
? Вы должны использовать одно из следующих (предполагая, что удаленный веб-сервер может видеть ваш компьютер с 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()
может!