MSSQL PDO找不到驱动程序

时间:2013-05-01 00:08:40

标签: php database pdo

我正在使用通过XAMPP和Microsoft SQL Server 2008 R2(SQLEXPRESS)安装的PHP 5.3.8版。我正确安装了驱动程序(我猜)并将正确的行添加到php.ini中(确切地说是extension = php_pdo_sqlsrv_53_ts_vc9.dll)。

我正试图像这样连接到服务器:

try {

    $DBH = new PDO("mssql:host=xxxx;dbname=xxxx", 'xxxx', 'xxxx');

} catch(PDOException $e) {

    echo $e->getMessage();
}

我收到“找不到驱动程序”的错误,我已经调整了各种方法来解决问题。我已经尝试过所有其他类型的驱动程序,但这是Apache在启动时没有给我错误的唯一一个。当我运行phpinfo()时,除了pdo_sqlsrv.log_severity设置为0之外,pdo_sqlsrv字段都是空白的。

我从microsoft DL我的司机,我已经尝试了2.0和3.0

任何建议都很棒!!

2 个答案:

答案 0 :(得分:7)

mssql是旧方法,sqlsrv应该更合适!事实上,扩展名也被调用(extension = php_pdo_ sqlsrv _53_ts_vc9.dll);)

try {

    $DBH = new PDO("sqlsrv:Server=xxxx;Database=xxxx", 'xxxx', 'xxxx');

} catch (PDOException $e) {

    echo $e->getMessage();
}

希望这有帮助!

来源:http://php.net/manual/fr/ref.pdo-sqlsrv.connection.php

examples from documentation

答案 1 :(得分:2)

不确定这是否是由于运行CentOS x86_64计算机而sqlsrv无法作为我的驱动程序,我必须使用dblib

try {

    $DBH = new PDO("dblib:host=xxxx;dbname=xxxx", 'xxxx', 'xxxx');

} catch (PDOException $e) {

    echo $e->getMessage();
}

来源并感谢:http://grover.open2space.com/content/use-php-and-pdo-connect-ms-sql-server