Прежде всего, если mssql_connect
выдает предупреждение при возникновении проблемы, вы ничего не можете сделать, чтобы ее избежать: единственное, что вы можете сделать, это скрыть это, используя @
оператор :
if (($dbhandle = @mssql_connect($myServer, $myUser, $myPass)) === false) {
// connection failed
}
Примечание: вы не должны die()
при возникновении ошибки соединения: это остановит выполнение всего приложения, что, безусловно, нежелательно.
Фатальная ошибка - это вторая проблема (которая, вероятно, является следствием первой) .
Обратите внимание, что вы не можете восстановиться после фатальной ошибки: это Фатальная . Что означает, что вы должны избегать этого, так или иначе.
Здесь ошибка в том, что ваш скрипт работает более max_execution_time
секунд; поскольку в строке mssql_connect
сообщается об ошибке, я полагаю, что сценарий ожидает успешного установления соединения и не устанавливается менее чем за 30 секунд.
У меня нет базы данных SQL Server для тестирования, но, глядя на раздел Runtime Configuration руководства по mssql, я бы сказал, что это выглядит интересно:
name Default value
mssql.connect_timeout "5"
mssql.timeout "60"
Вы можете попробовать изменить их,
- либо в вашем файле php.ini, если вы можете изменить его
- или используйте
ini_set()
перед попыткой подключения.
Во втором случае что-то подобное может сработать:
ini_set('mssql.connect_timeout', '3');
ini_set('mssql.timeout', '3');