Проблемы с подключением к Microsoft SQL Server Express (2008) из PHP - PullRequest
2 голосов
/ 06 февраля 2009

Как видно из названия, у меня проблемы с подключением к MSSQL из PHP-скрипта.

Настройка: -

  • PHP работает на сервере Apache Linux.
  • Microsoft SQL Server 2008 установлен на компьютере с XP.
  • У меня включены удаленные подключения на сервере MSSQL.
  • База данных bggs существует.
  • База данных работает (я вижу зеленую стрелку).
  • У меня нет брандмауэра на XP Machine.

Если у вас есть какие-либо вопросы по отладке, не стесняйтесь спрашивать.

Я использую следующий тестовый скрипт.

<code><?php
    include('adodb5/adodb.inc.php');
    $db =& ADONewConnection('odbc_mssql');
    $db->debug = true;
    $dsn = "Driver={SQL Server};Server=ozmodiar;Database=bggs;";
    $db->Connect($dsn,'user','password');
    $rs = $db->Execute('select * from admin_users');
    print "<pre>";
    print_r($rs->GetRows());
    print "
"; ?>

Получение следующего результата.

Предупреждение: odbc_connect () [function.odbc-connect]: ошибка SQL: [unixODBC] [Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию, состояние SQL IM002 в SQLConnect в / mnt / filestore / vhost /bggs/hr_database/Dev/includes/adodb5/drivers/adodb-odbc.inc.php в строке 60 (odbc_mssql): SET CONCAT_NULL_YIELDS_NULL OFF
Предупреждение: odbc_exec (): предоставленный аргумент не является допустимым ресурсом ODBC-Link в /mnt/filestore/vhost/bggs/hr_database/Dev/includes/adodb5/drivers/adodb-odbc.inc.php в строке 530 IM002: [unixODBC] [Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию

ADOConnection._Execute (SET CONCAT_NULL_YIELDS_NULL OFF, false) строка 1017%, файл: adodb.inc.php ADOConnection.Execute (SET CONCAT_NULL_YIELDS_NULL OFF)% строка 62, файл: adodb-odbc.inc.php ADODB_odbc._connect (Driver = {SQL Server}; Сервер = 192.168.70.130; База данных = bggs ;, sa, knd121,)% строка 524, файл: adodb.inc.php ADOConnection.Connect (Driver = {SQL Server}; Сервер = 192.168.70.130; База данных = bggs ;, sa, knd121)% строка 9, файл: test_db.php

Driver = {SQL Server}; Сервер = 192.168.70.130; База данных = bggs ;: [unixODBC] [Driver Manager] Имя источника данных не найдено, и драйвер по умолчанию не указан (odbc_mssql): выберите * из admin_users
Предупреждение: odbc_exec (): предоставленный аргумент не является допустимым ресурсом ODBC-Link в /mnt/filestore/vhost/bggs/hr_database/Dev/includes/adodb5/drivers/adodb-odbc.inc.php в строке 530 IM002: [unixODBC] [Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию

ADOConnection._Execute (выберите * из admin_users, false)% строка 1017, файл: adodb.inc.php ADOConnection.Execute (выберите * из admin_users)% строка 10, файл: test_db.php

Неустранимая ошибка: вызов функции-члена GetRows () для необъекта в /mnt/filestore/vhost/bggs/hr_database/Dev/includes/test_db.php в строке 12

1 Ответ

3 голосов
/ 06 февраля 2009

Отказ от ответственности: Я запрашивал данные только из Microsoft SQL Server 2000, но через PDO_DBLIB, хотя я считаю необходимым наличие драйверов freetds для ADODB или PDO_DBLIB.

Судя по первоначальному сообщению об ошибке, у вас не установлены необходимые драйверы. Чтобы ваше приложение получило доступ к серверу, вам необходимо установить freetds, который установит необходимые драйверы и позволит вам настроить соединения ODBC. Проверить: http://www.linuxjournal.com/article/6636

Важно отметить, что вам нужно установить "tds version = x.x" в вашей глобальной конфигурации freetds или конкретном соединении OBDC (/etc/freetds/freetds.conf по умолчанию в debian) точно правильно, или протокол, который freedtds использует с ваш сервер не будет корректным и скрипт будет бомбить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...