【问题标题】:PDO drivers are installed, but connection test says otherwise已安装 PDO 驱动程序,但连接测试另有说明
【发布时间】:2013-06-03 19:12:10
【问题描述】:

我正在尝试使用 PDO 驱动程序连接到我的数据库,据我所知它们已正确安装。我已将扩展名添加到我的 php.ini 文件中,驱动程序位于 ext 文件夹中,我下载了 Microsoft 驱动程序 3.0。 PHPinfo() 表示 pdo_sqlsrv 驱动程序已启用。我正在使用带有 iis 的 Windows 服务器。我安装了 PHP 5.4 并使用了非线程安全的驱动程序。我还能错过什么?

<?php

try{
$dbh = new pdo( 'sqlsrv=websvr\sqlwebdata:1433;dbname=xxxx',
                'xxxx',
                'xxxx',
                array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
die(json_encode(array('outcome' => true)));
}
catch(PDOException $ex){
  print "Error!: " . $ex->getMessage() . "<br/>";
    die();

}

?>

【问题讨论】:

  • 您是否编辑了两个 php.ini 文件?
  • @KeesSonnema 我想不需要,还有哪一个需要编辑?只需像 php.ini 文件一样添加扩展名?
  • 你有两个 php.ini 文件。一个在您的 php 文件夹中,一个在您的 apache 文件夹中。试试看。
  • @KeesSonnema 我使用的是 IIS,而不是 apache。
  • 错误信息到底是什么意思?

标签: php sql pdo database-connection drivers


【解决方案1】:

http://docs.php.net/manual/de/pdo.construct.php 说:

PDO::__construct() ( 字符串 $dsn, ...
[...]
通常,DSN 由PDO 驱动程序名称、后跟一个冒号、后跟PDO 驱动程序特定连接语法组成

尝试使用(编辑:固定数据库 = 关键字)

new pdo( 'sqlsrv:Server=websvr\sqlwebdata,1433;Database=xxxx',

另见:http://php.net/ref.pdo-sqlsrv.connection

【讨论】:

  • 错误!:SQLSTATE[IMSSP]:在 DSN 字符串中指定了无效的关键字“dbname”。我确实有“sqlsrv:host=websvr....”,但它说主机也是无效的。
  • 将 dbname 更改为数据库并修复了它。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-07
  • 1970-01-01
  • 2013-08-16
  • 2016-11-19
  • 2022-01-14
  • 2020-07-24
相关资源
最近更新 更多