我使用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
答案 0 :(得分:0)
你说$ doresult是0,但事实上问题是$ connect是0,对吗?
可能是.db文件的保护。
数据库是否已由某个ASA服务引擎(将定义server = winpest,dbname = windata)运行,或者您是否希望PHP脚本在需要时启动引擎? 在这种情况下,我经常遇到数据库引擎(dbeng7)不在系统路径中的问题,这会阻止ODBC驱动程序根据请求启动引擎数据库。