#php #sql #sql-server #database #sqlsrv
#php #sql #sql-сервер #База данных #sqlsrv
Вопрос:
Я пытаюсь подключиться с php к базе данных mssql. Я уже установил драйверы для этого.
Теперь у меня следующая ошибка:
Массив ([0] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [ код] => 18456 [2] => [ Microsoft] [Драйвер ODBC 13 для SQL Server][SQL Server] не удалось войти в систему для пользователя ‘domain user’. [сообщение] => [Microsoft] [Драйвер ODBC 13 для SQL Server][SQL Server] Не удалось войти в систему для пользователя ‘domain user’. ) [1] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [ код] => 18456 [2] => [ Microsoft] [Драйвер ODBC 13 для SQL Server][SQL Server] не удалось войти в систему для пользователя ‘domain user’. [сообщение] => [Microsoft] [Драйвер ODBC 13 для SQL Server][SQL Server] Не удалось войти в систему для пользователя ‘domain user’. ) )
Есть ли что-то, чего мне не хватает?
Редактировать: Моя строка подключения:
$serverName = "server, port";
$connectionInfo = array( "Database"=>"my_database");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn == false)
{
echo "Unable to connect.<br />";
die( print_r( sqlsrv_errors(), true));
}
Редактировать 2:
Пример кода с пользователем и pw
$serverName = "server, port"; //serverNameinstanceName
$connectionInfo = array( "Database"=>"my_database", "UID"=>"domainuser", "PWD"=>"my_pw");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection OK.<br />";
}else{
echo "Unable to connect.<br />";
die( print_r( sqlsrv_errors(), true));
}
Комментарии:
1. Можете ли вы опубликовать свой код?
2. @Zhorov добавил пример кода
Ответ №1:
Пришлось изменить метод аутентификации в службе wampapaches. Там я поместил своего пользователя и передал и все работало нормально.
Ответ №2:
У меня была похожая проблема. У меня есть php-скрипт для доступа к базе данных mssql, размещенной поставщиком. Мы не можем использовать аутентификацию Windows. Идентификатор пользователя и пароль действительны, поскольку он работает с python. Мы обнаружили, что пароль, предоставленный поставщиком, содержит $, который в PHP обозначает переменную. Мы заменили двойные кавычки вокруг пароля на одинарные кавычки, и это сработало. И это было вызвано тем, что на сервере были включены волшебные кавычки, и обходной путь заключается в использовании одинарных кавычек, заставляющих PHP распознавать пароль как строку.