PHP Apache (XAMPP) ODBC 连接问题


php apache (xampp) odbc connection issue

当我将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

请阅读文档: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);

在这种情况下,一切都是脚本的一部分,没有外部依赖项。

顺便说一句 - 而不是使用ODBC Functions,我建议使用PDO和驱动程序专门用于MS SQL Server:PDO_SQLSRV - http://uk.php.net/manual/en/ref.pdo-sqlsrv.php(如果您更喜欢旧的程序样式,则Microsoft SQL Server Driver for PHP - http://uk.php.net/manual/en/book.sqlsrv.php)