0

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

1 回答 1

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);

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

顺便说一句——我建议不要使用 ODBC 函数,而是专门为 MS SQL Server使用PDO和驱动程序: PDO_SQLSRV —— http ://uk.php.net/manual/en/ref.pdo-sqlsrv.php (或Microsoft SQL PHP 服务器驱动程序,如果您喜欢旧的程序风格 - http://uk.php.net/manual/en/book.sqlsrv.php

于 2012-04-24T12:14:12.200 回答