Intereting Posts
Почему файл может быть частично загружен? Использование Carbon для возвращения читаемой человеком разницы в датах Перенаправление и перенаправление URL-адресов (с данными базы данных) Как вызвать функцию php из ajax? Невозможно загрузить видео в учетную запись пользователя facebook с помощью Graph API Преобразование даты Из одного формата в другой JSON создает форму для поиска диапазона дат с использованием значения «datetime» file_get_contents с https-запросами через прокси-сервер Соответствие для нечувствительной к регистру точной фразы с пробелами Как сфокусировать верхний заголовок Аккордеона, когда мы нажимаем на это почему str_replace заменяет мой символ точкой с запятой? Группа захвата php Почему я получаю «Неопределенное смещение: 0»? Как установить переменную сеанса при нажатии ссылки <a> pagination не ссылается на предложение where при нажатии новой страницы

Подключение к SQL Server 2008 через PHP

Мне нужно подключиться к SQL Server 2008 через PHP (WAMP, последняя версия). У меня установлены и настроены драйверы sqlsrv, и они отображаются в phpinfo() .

Я использую следующие строки для подключения к моей базе данных, используя проверку подлинности Windows:

 $serverName = "(local)"; $connectionOptions = array("Database"=>"MyTestDatabase"); $conn = sqlsrv_connect( $serverName, $connectionOptions) or die("Error!"); 

И я получаю следующую ошибку:

 Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [code] => -49 [2] => This extension requires the Microsoft SQL Server 2011 Native Client. Access the following URL to download the Microsoft SQL Server 2011 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712 [message] => This extension requires the Microsoft SQL Server 2011 Native Client. Access the following URL to download the Microsoft SQL Server 2011 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712 ) [1] => Array ( [0] => IM002 [SQLSTATE] => IM002 [1] => 0 [code] => 0 [2] => [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified [message] => [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified ) ) 

Любая помощь будет отличной, но, пожалуйста, будьте конкретны, так как я действительно не знаю своего пути вокруг WAMP, за исключением нескольких основ.

Ошибка вызвана проблемой разрешения в реестре. Существует ключ, в котором хранится путь к собственному клиенту, и личность, которую вы используете в пуле приложений, получает отказ в доступе.

  • Загрузите Process Monitor и следуйте инструкциям на этом посту: http://www.iislogs.com/articles/processmonitorw3wp/ (В этом руководстве показано, как это сделать в IIS, с WAMP вам нужно будет найти процесс .exe, который работает Память)
  • Найдите раздел реестра, где процессу w3wp.exe будет отказано в доступе. Это в случае IIS, не уверен, что имя процесса в WAMP, но процедура такая же. В моем случае:

     HKLM\Software\ODBC\ODBCINST.INI\SQL Native Client 10.0 
  • Запустите regedit и найдите ключ
  • Щелкните правой кнопкой мыши и выберите Разрешения
  • Добавьте сетевую службу в список и дайте ей разрешения на чтение.
  • Переработайте пул приложений, и он должен работать

Руководство пользователя sqlsrv_connect PHP

Попробуйте этот подход, чтобы увидеть, что такое ошибка:

 $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Connection established.<br />"; } else { echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true)); } 

На основе вашей настройки вам может потребоваться вернуться к mssql_connect и соответствующим функциям. Это отлично работает с mssql 2008, и вы обычно не теряете значимых функциональных возможностей.

Вот пример настройки соединения с базой данных. В зависимости от вашей конфигурации вам может потребоваться добавить информацию о порте и т. Д.

 $hostname = "server.domain.com"; $database = "DatabaseName"; $username = "LocalSQLUserName"; $password = "P@ssw0rd"; $Connection = mssql_connect($hostname, $username, $password); 

Если вы работаете в среде XAMP, тогда будет разумно, что вы выполняете все локально. Если это так, ваш сервер будет localhost или 127.0.0.1 и вы можете определить свои собственные учетные записи в SQL. Как я уже сказал, я сам не использую учетные записи Windows, но вы можете добавить учетную запись NT на свой «сервер», а затем в инструменте управления SQL Server установить, чтобы пользователь имел доступ к используемой вами базе данных. Затем вы установили учетную запись и пароль и знаете, что они собой представляют. Если у вас возникли проблемы с учетной записью пользователя, вы можете попробовать computerName\userName .

Если вы не администратор, вам нужно получить от них соответствующую информацию.