【发布时间】:2015-12-04 16:04:02
【问题描述】:
按照在线示例和 PDO 文档,我有这一行用于使用持久连接创建 PDO 对象:
$p = new PDO('dblib:host=SOMEHOSTNAME;dbname=SOMEDB',$user,$password,[PDO::ATTR_PERSISTENT=>true]);
官方文档示例:http://php.net/manual/en/pdo.connections.php
我们得到的错误:
SQLSTATE[IM001]:驱动不支持该功能:驱动不支持设置属性
【问题讨论】:
-
您是否连接到 MS SQL 服务器?
-
是的,我们是。 dblib 是一个使用 freetds 的 mssql 驱动程序。
-
This extension is not available anymore on Windows with PHP 5.3 or later. 表示 dblib 驱动程序在运行 PHP 5.3 或更高版本的 Windows 上不可用。您应该改用
PDO_SQLSRV。 PDO_SQLSRV 了解更多信息。 -
你是 100% 正确的。我在nix系统上使用它而不是Windows。我确实有一个将 SQLSRV 用于其他用途的 Windows 实例,这很好。我认为我不需要提及我在 Nix 上,因为 dblib 只在上面。
-
根据我的研究,pdo 驱动程序
dblib不允许设置属性。这就是您收到错误消息的原因。尝试将dblib:更改为sqlsrv:
标签: php sql-server pdo freetds