PHP ODBC connect未连接到Sybase db

PHP ODBC connect未连接到Sybase db,php,odbc,sybase-asa,Php,Odbc,Sybase Asa,我使用PHP建立了一个网站,通过ODBC连接与已经用于内部应用程序的Sybase db进行对话,因此该领域的用户可以访问内部db。这是在2003年的NT服务器上,一切正常 然后我自己在一台XP Pro机器上建立了一个类似的网站,虽然网站可以访问,PHP编程也可以运行,但PHP页面无法访问数据库。我没有收到任何错误,我已经检查了两个站点之间的phpinfo工作和非工作,并没有提出任何想法 确信通过ODBC连接到数据库不起作用,XP Pro上的配置是否应该不同于2003 NT机器?ODBC在两台机器

我使用PHP建立了一个网站,通过ODBC连接与已经用于内部应用程序的Sybase db进行对话,因此该领域的用户可以访问内部db。这是在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[函数.odbc connect]:

SQL错误:[Microsoft][ODBC驱动程序管理器]

未找到数据源名称,未指定默认驱动程序

第22行C:\Inetpub\wwwroot\allpro\apptlist1.php中SQLConnect中的SQL状态IM002


你说$doresult是0,但事实上问题是$connect是0,对吗

它可能是.db文件上的保护

数据库是否已经由某个ASA服务引擎运行,该引擎将定义server=winpest、dbname=windata,或者您是否希望PHP脚本在需要时启动引擎?
在这种情况下,我经常遇到数据库引擎dbeng7不在系统路径中的问题,这会阻止ODBC驱动程序根据请求启动引擎数据库。

您是否有DB类型的驱动程序?在ODBC administrator中成功设置到sybase的ODBC连接,然后使用php odbc connect来利用这一点。我很感激您能看到这一点,我很乐意详细讨论它,我真的很乐意这样做。谢谢。我根据要求用一些代码更新了该项。错误IM002指向ServerName winpest是一个不正确的系统数据源名称,而您希望它是ASA服务器中/由ASA服务器声明的名称。您是否可以尝试使用ASA连接参数的另一种形式:ENG而不是ServerName?实际上是使用多用户程序dbsrv7.exe而不是dbeng7.exe。您的意思是程序“dbserv7.exe”应该在路径上,而不仅仅是它所在的目录上吗?另外,由于权限问题,我已经更新了数据库文件所在的文件夹,或者我应该使用用户帐户做些什么?不,像往常一样,它只是dbsrv7.exe目录的名称,需要在PATH中,而不是dbsrv7.exe本身。我仔细检查了路径,尝试设置ENG变量,查看了web文件文件夹上的权限…仍不工作。