将现有php接口连接到现有SQL Server DB时出现问题-odbc错误
我在将现有(不是我自己编程的)PHP接口连接到现有SQL Server DB时遇到了巨大的困难。我一直在使用odbc“system DSN”接口,从我自己的自行编程PHP接口访问此SQL Server DB的副本,以便在本地机器上进行测试。但我想,本地测试环境中的odbc接口可能与实际服务器上的odbc接口不同 我正在使用如下代码建立odbc连接:将现有php接口连接到现有SQL Server DB时出现问题-odbc错误,php,sql,odbc,Php,Sql,Odbc,我在将现有(不是我自己编程的)PHP接口连接到现有SQL Server DB时遇到了巨大的困难。我一直在使用odbc“system DSN”接口,从我自己的自行编程PHP接口访问此SQL Server DB的副本,以便在本地机器上进行测试。但我想,本地测试环境中的odbc接口可能与实际服务器上的odbc接口不同 我正在使用如下代码建立odbc连接: $db_server ="localhost"; $db_name ="testdb"; $db_user ="testuser";
$db_server ="localhost";
$db_name ="testdb";
$db_user ="testuser";
$db_pass ="test";
$conn = odbc_connect($db_name, $db_user, $db_pass) or die ('Can not connect '. $db_name);
这很好-我可以访问数据库,一切正常
我试图在测试环境中集成的PHP接口以以下方式进行连接:
$db_server = "localhost"; # I changed that one from the original server name
$db_user = "testuser";
$db_pass = "test";
$db_name = "testdb";
$connection_id = odbc_connect($dbserver, $dbuser, $dbpass);
因此,服务器上的连接似乎没有提到$db_name字段。听起来很奇怪,但我只是一个通过odbc使用SQL的新手——通常我只使用MySQL
因此,当PHP代码尝试访问数据库时,会出现以下错误:
警告:odbc_connect()
[function.odbc connect]:SQL错误:
[Microsoft][ODBC驱动程序管理器]数据
找不到源名称,也没有默认名称
已指定驱动程序,SQL状态IM002处于
SQLConnect-in
D:\xampp\xampp\htdocs\testdb\global.include
在线xxx
xxx是包含
“$connection\u id=
odbc_connect($dbserver,$dbuser,
$dbpass);”
有什么办法让它工作吗?我几乎完全肯定这与我的机器上定义的odbc数据接口有关,但我现在不知道
非常感谢您的任何帮助
谢谢,
Sasha通过ODBC连接时,实际上并没有指定数据库的目标详细信息,而是指定一个数据源名称。在数据源注册表中查找此数据源名称,并从中获取连接详细信息。因此,您需要将$db_server设置为数据源名称,而不是实际的主机名。您的第二个代码段初始化$db_server等,然后使用$dbserver,对吗?您好,araqnid,非常感谢!这就是让我如此困惑的原因!啊,浪费了这么多时间,犯了这么简单又愚蠢的错误——就像往常一样。。。解决了。@莎莎-如果这个答案解决了你的问题,考虑标记为接受,并提供了一个表决。它不仅感谢@araqnid,还向社区展示了答案在您的问题中是有价值的。我刚刚发现您必须指定一个系统数据源,而不是用户数据源。我花了一个小时才弄明白。