【发布时间】:2013-12-01 14:00:33
【问题描述】:
我的任务是获取我们所有的 MySQL 数据库并将它们迁移到 SQL Server。在尝试让 PHP 5.3.24 与 MSSQL 一起工作时,我做了以下事情:
将非线程安全的驱动复制到/php/ext。
更新了我的 php.ini 文件以包含以下两行:
extension=php_pdo_sqlsrv_53_nts_vc9.dll;
extension=php_sqlsrv_53_nts_vc9.dll
重新启动在 Windows Server 2008 R2 上运行的 IIS 7。
phpinfo 在Registered PHP Streams 下显示sqlsrv,并且sqlsrv 也出现在PDO 驱动程序下,pdo_sqlsrv 支持显示为“启用”。然而,当我尝试通过我的应用程序连接时,我得到以下信息:
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\inetpub\wwwroot\mystuff\myphpconnectfile.php
我的连接字符串如下所示:
$con = new PDO("mssql:host=xxx.xxx.xxx.xxx,1433;dbname=mydb", "user", "pwd");
$con -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return($con);
看起来它可以找到服务器,但不是 PHP/PDO mssql 驱动程序。我错过了什么?
编辑:phpinfo 下的配置命令显示“--without-mssql”“--without-pdo-mssql”行。我不知道去哪里改变它,或者是否有必要。
【问题讨论】:
-
为什么要从 MySQL 迁移到 MS-SQL?!?
-
尝试
new PDO('sqlsrv: ... ');而不是new PDO('mssql: ... '); -
@arkascha:相信我,这不是我的主意,我为之奋斗。我们与 MySQL 相处得非常好,但 TPTB 已经决定,为了互操作性,一切都需要在 SQL Server 中。幸运的我。
-
@FDL:这让我有所收获。我现在收到此错误:在 DSN 字符串中指定了无效的关键字“主机”。我需要重写我的连接字符串吗?
-
@Chris 叶,
sqlsrv:Server=xxx,1433;Database=mydb
标签: php sql sql-server pdo