PHP ODBC соединение не подключается к Sybase db - PullRequest
0 голосов
/ 29 октября 2009

Я настроил веб-сайт, используя PHP для связи с базой данных Sybase (уже используемой для внутреннего приложения) через соединение ODBC, чтобы пользователи на местах могли получить доступ к внутренней базе данных. Это было на 2003 NT сервере, и все работало нормально.

Затем я установил аналогичный сайт на машине с XP Pro (на этот раз сам), и пока веб-сайт доступен, а программирование на PHP работает, страницы PHP не могут получить доступ к БД. Я не получаю ошибок, я проверил phpinfo между двумя сайтами (рабочим и нерабочим) и не нашел идей.

Убежден, что соединение с базой данных через ODBC не работает, должна ли конфигурация на XP Pro отличаться от конфигурации на машине с 2003 NT? ODBC настроен одинаково на обеих машинах.

<?php
$Page_Name = "apptlist1.php";
import_request_variables('gpc');

$db_host = "wintermlocal";
$db_server_name = "winpest";
$db_name = "windata.db";
$db_file = "c:\data\windata.db";
$db_conn_name = "php_script";
$db_user = "dba";
$db_pass = "sql";
//================================================================
$connect_string = "Driver={Adaptive Server Anywhere 7.0};"
    ."CommLinks=tcpip(Host=$db_host);"
    ."ServerName=$db_server_name;"
    ."DatabaseName=$db_name;"
    ."DatabaseFile=$db_file;"
    ."ConnectionName=$db_conn_name;"
    ."uid=$db_user;pwd=$db_pass";
//================================================================

$connect = odbc_connect($connect_string,'','');
?>

Предупреждение: odbc_connect () [function.odbc-connect]:

Ошибка SQL: [Microsoft] [Диспетчер драйверов ODBC]

Не найдено имя источника данных и не указан драйвер по умолчанию

Состояние SQL IM002 в SQLConnect в C: \ Inetpub \ wwwroot \ allpro \ apptlist1.php в строке 22 * ​​1016 *

1 Ответ

0 голосов
/ 04 ноября 2009

Вы говорите, что $ doresult равен 0, но на самом деле проблема в том, что $ connect равен 0, верно?

Это может быть защита файла .db.

База данных уже запущена каким-либо сервисным ядром ASA (который определит server = winpest, dbname = windata) или вы ожидаете, что PHP-скрипт запустит ядро ​​в случае необходимости? В этом случае у меня часто возникали проблемы из-за того, что ядро ​​базы данных (dbeng7) не находилось в системном пути, что не позволяет драйверу ODBC запускать базу данных ядра по запросу.

...