0

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

然后我在一台 XP Pro 机器上建立了一个类似的站点(这次是我自己),虽然该网站可以访问,并且 PHP 编程工作正常,但 PHP 页面无法访问 db。我没有收到任何错误,我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 驱动程序管理器]

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

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

4

1 回答 1

0

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

它可能是对 .db 文件的保护。

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

于 2009-11-04T06:27:53.280 回答