【发布时间】:2014-10-14 23:46:59
【问题描述】:
我正在尝试访问 SQL Server。
更新:为了响应 Clive 在下面的 cmets,我还尝试重新安装本机 ODBC 驱动程序,但没有任何变化。
我已经检查了我能找到的所有问题,一切似乎都井井有条。我的服务器详情:
PHP 5.4(通过 Plesk 管理)
SQL Server 2008 R2 SP2
视窗服务器 2008 R2
用于 PDO 的最新 mssql 驱动程序位于 EXT 目录中,并在 php.ini 中引用:
extension=php_sqlsrv_54_nts.dll
extension=php_pdo_sqlsrv_54_nts.dll
PHPINFO() 给出以下内容:
PDO Drivers: mysql, sqlite, sqlsrv
pdo_sqlsrv support: enabled
sqlsrv support: enabled
我的连接字符串如下所示:
$DSN = "sqlsrv:Server=myDbServer,1433;database=my-dbname";
$PdoOptions = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$sparklyGenericPdoObj = new PDO($DSN,'myUsername','myPasswurde', $PdoOptions);
但这只是给了我以下错误,它以迂回的方式链接到我已经安装的驱动程序(我已经检查了版本号):
PHP 致命错误:带有消息的未捕获异常“PDOException” 'SQLSTATE[IMSSP]:此扩展需要 Microsoft SQL Server 2012 Native Client ODBC Driver 与 SQL Server 通信。使用权 以下 URL 下载 Microsoft SQL Server 2012 Native x86 的客户端 ODBC 驱动程序: http://go.microsoft.com/fwlink/?LinkId=163712'
在这个线程上(报告与我完全相同的错误)是一个解决方案,它说您可以通过在 PHPINFO 中查找我上面提到的项目来确认驱动程序已安装:Not getting connected to Sql Server 2012!
任何帮助将不胜感激!
【问题讨论】:
-
错误提示您缺少驱动程序 - 尝试安装该驱动程序
-
谢谢克莱夫。当我看到丢失的驱动程序时,我认为驱动程序可能丢失了,所以我确保驱动程序没有丢失,根据上面的 cmets:PDO 的最新 mssql 驱动程序位于 EXT 目录中,并在 php.ini 中引用:扩展=php_sqlsrv_54_nts.dll 扩展=php_pdo_sqlsrv_54_nts.dll
-
这是一个 PHP 扩展...你需要安装the SQL server odbc driver。完全不同的东西
-
抱歉——我对 PHP 不太熟悉,所以假设它们也被称为驱动程序。已经为服务器安装了 ODBC、OLEDB 等驱动程序。 SQL Server 数据库正在运行许多其他数据库,这些数据库通过许多不同的语言(.NET、ASP.NET、VBscript)毫无问题地访问,而 MySQL WorkBench 则通过本机 ODBC 驱动程序访问它。这是我第一次尝试通过 PHP 访问它。
-
然而,一个危险信号是它要求 SQL Server 2012 驱动程序,但我安装了 SQL Server 2008 R2(我知道它们是同一代但仍然看起来很奇怪?)
标签: php sql-server