PHP ODBC连接未连接到Sybase db

时间:2009-10-29 17:37:28

标签: php odbc sybase-asa

我使用PHP建立了一个网站,通过ODBC连接与Sybase数据库(已经用于内部应用程序)进行通信,因此该领域的用户可以访问内部数据库。这是在2003 NT服务器上,一切正常。

然后我在XP Pro机器上设置了一个类似的站点(这次,我自己),虽然可以访问该站点,并且PHP编程工作,但PHP页面无法访问db。我没有收到任何错误,我在两个网站(工作和非工作)之间检查了phpinfo并且没有提出任何想法。

如果XP Pro上的配置与2003 NT机器不同,那么确信通过ODBC无法连接到数据库吗? 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驱动程序管理器]

     

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

     

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

1 个答案:

答案 0 :(得分:0)

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

可能是.db文件的保护。

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