gpt4 book ai didi

php - PDO:setAttribute() 对 dblib 和 SQL Server 没有影响

转载 作者:行者123 更新时间:2023-12-02 08:04:10 31 4
gpt4 key购买 nike

我使用以下几行从运行 PHP 5.3.19 的 Linux 服务器连接到 SQL Server 数据库 (SQL Server 2008 R2 SP2 x64):

$this->dbLink = new PDO(
'dblib:host='.$this->host.';dbname='.$this->database,
$this->user,
$this->password,
array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
)
);

连接工作得很好,除了 ATTR_ERRMODE 工作为 ERRMODE_WARNING,无论我做什么。

我尝试在查询调用之前使用 $this->dbLink->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 设置它,但没有效果。

如果我使用 getAttribute(),我可以确认 PDO::ATTR_ERRMODE 确实设置为 int(2) (ERRMODE_EXCEPTION),但我仍然收到警告和PHP 一直伴随着明显错误的查询。

最佳答案

PDO_DBLIB 是一个实验性扩展,不应用于生产环境。

http://www.php.net/manual/en/ref.pdo-dblib.php

如果可以的话,您应该使用 PDO_SQLSRV:

http://www.php.net/manual/en/ref.pdo-sqlsrv.php

只需将连接设置从 dblib: 更改为 PDO_SQLSRV 驱动程序 dns 前缀 sqlsrv:

http://www.php.net/manual/en/ref.pdo-sqlsrv.connection.php

请告诉我这是否适合您

关于php - PDO:setAttribute() 对 dblib 和 SQL Server 没有影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22486004/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com