正如标题所说,我在从 PHP 脚本连接到 MSSQL 时遇到问题。
设置: -
- PHP 在 Apache Linux 服务器上运行。
- Microsoft SQL Server 2008 在 XP 机器上。
- 我在 MSSQL Server 中打开了远程连接。
- 数据库 bggs 确实存在。
- 数据库正在运行(我可以看到一个绿色箭头)。
- 我在 XP 机器上没有防火墙。
如果您有任何调试问题,请随时提出。
我正在使用以下测试脚本。
<?php
include('adodb5/adodb.inc.php');
$db =& ADONewConnection('odbc_mssql');
$db->debug = true;
$dsn = "Driver={SQL Server};Server=ozmodiar;Database=bggs;";
$db->Connect($dsn,'user','password');
$rs = $db->Execute('select * from admin_users');
print "<pre>";
print_r($rs->GetRows());
print "</pre>";
?>
得到以下结果。
警告:odbc_connect() [function.odbc-connect]: SQL 错误:[unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL 状态 IM002 in SQLConnect in /mnt/filestore/vhost/bggs/ hr_database/Dev/includes/adodb5/drivers/adodb-odbc.inc.php 在第 60 行 (odbc_mssql):SET CONCAT_NULL_YIELDS_NULL OFF
警告:odbc_exec():提供的参数不是 /mnt/filestore/vhost 中的有效 ODBC-Link 资源/bggs/hr_database/Dev/includes/adodb5/drivers/adodb-odbc.inc.php on line 530 IM002: [unixODBC][Driver Manager]Data source name not found, and no default driver specified
ADOConnection._Execute(SET CONCAT_NULL_YIELDS_NULL OFF, false) % 第 1017 行,文件:adodb.inc.php ADOConnection.Execute(SET CONCAT_NULL_YIELDS_NULL OFF) % 第 62 行,文件:adodb-odbc.inc.php ADODB_odbc._connect(Driver={SQL Server};Server=192.168.70.130;Database=bggs;, sa, knd121, ) % line 524, file: adodb.inc.php ADOConnection.Connect(Driver={SQL Server};Server=192.168.70.130;Database=bggs ;, sa, knd121) % 第 9 行,文件:test_db.php
Driver={SQL Server};Server=192.168.70.130;Database=bggs;: [unixODBC][Driver Manager]未找到数据源名称,并且未指定默认驱动程序 (odbc_mssql): select * from admin_users
警告: odbc_exec():提供的参数不是 /mnt/filestore/vhost/bggs/hr_database/Dev/includes/adodb5/drivers/adodb-odbc.inc.php 中的有效 ODBC 链接资源 530 IM002:[unixODBC][Driver Manager]Data未找到源名称,并且未指定默认驱动程序
ADOConnection._Execute(select * from admin_users, false) % line 1017, file: adodb.inc.php ADOConnection.Execute(select * from admin_users) % line 10, file: test_db.php
致命错误:在第 12 行的 /mnt/filestore/vhost/bggs/hr_database/Dev/includes/test_db.php 中的非对象上调用成员函数 GetRows()