当我将apache(通过xampp)作为独立服务器而不是作为服务运行时(在Windows Server 2008上)
使用以下连接代码一切正常(用户名和密码已删除)
$server = "WMS";
$link = odbc_connect($server,'','');
if (!$link) {
die('Something went horribly wrong while connecting to MSSQL');
}else {echo('');}
但是,如果我将Apache更改为在Windows中作为服务运行,则连接中断并收到以下错误消息
Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Driver Manager]
Data source name not found and no default driver specified, SQL state IM002 in SQLConnect in
C:\xampp\htdocs\Dev\well.php on line 30
Something went wrong while connecting to MSSQL
答案 0 :(得分:1)
请阅读文档:http://uk.php.net/manual/en/function.odbc-connect.php
$server = "WMS";
建议您使用该名称配置ODBC别名/数据源。错误消息清楚地表明找不到具有此类名称(WMS)的数据源。在Windows 7 / Vista / XP / Server上,您可以在“开始 - >管理工具 - >数据源(ODBC)”中配置它们 - 路径在旧操作系统上可以不同。无论如何 - 寻找“Microsoft ODBC数据源管理员”。
我建议(我总是连接的方式)使用完整的DSN名称,而不是使用别名,例如。
// Microsoft SQL Server using the SQL Native Client 10.0 ODBC Driver - allows connection to SQL 7, 2000, 2005 and 2008
$link = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);
在这种情况下,一切都是脚本的一部分,没有外部依赖。
BTW - 我建议使用 PDO &amp ;;而不是使用ODBC函数。专门针对MS SQL Server的驱动程序: PDO_SQLSRV - http://uk.php.net/manual/en/ref.pdo-sqlsrv.php(或用于PHP的Microsoft SQL Server驱动程序,如果您更喜欢旧的程序样式 - http://uk.php.net/manual/en/book.sqlsrv.php )