【发布时间】:2013-03-17 02:36:42
【问题描述】:
我正在尝试使用 PHP 连接到 MSSQL 数据库,但在尝试连接时遇到了一个非常令人沮丧的错误。它会加载一分钟,然后打印出以下消息:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08001]:
[Microsoft][SQL Server Native Client 11.0]Named Pipes Provider: Could not open a connection to SQL Server [53].
这是我的连接字符串:
DB::config("sqlsrv:Server={$dbHost} ; Database={$dbName}", $dbUser, $dbPass);
在我的数据库类中:
public static function config($dsn, $user, $pass)
{
self::$_pdo = @new PDO($dsn, $user, $pass);
...// intentionally left out
我很困惑。我在 php.ini 文件中配置了以下模块:extension=php_pdo_sqlsrv_54_ts.dll。虽然我认为我安装正确并且我没有收到任何关于驱动程序不工作的错误消息,但这段 PHP 什么也没打印:
if (function_exists( 'sqlsrv_connect' ))
echo "hey";
从我上面的错误消息中可以看出,SQL Server Native Client 11 似乎正在工作。我在Windows平台上。我尝试禁用防火墙无济于事。我没有太多关于 SQL 服务器的信息,否则我会在这里分享。
这是我第一次在 Stack 上发帖,所以如果我遗漏了关键信息或者我没有以某种方式遵守适当的礼仪,我深表歉意,但我们非常感谢任何帮助。
另外,我应该补充一点,我已经做了太多的谷歌搜索,并且没有任何成功。
【问题讨论】:
-
SQL Server 是否允许网络连接?使用 SQL Express,这些默认情况下被禁用
-
其实是我的机器试图连接的问题。我尝试连接到不同的服务器,但也失败了。此外,使用 Mac 的 sqlsrv 等效项的人可以正常连接。
标签: php sql-server