php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #71941 PDO::ERRMODE_SILENT ignored for "implementation errors"
Submitted: 2016-04-01 12:45 UTC Modified: 2020-12-11 14:45 UTC
Votes:6
Avg. Score:3.5 ± 1.4
Reproduced:3 of 4 (75.0%)
Same Version:1 (33.3%)
Same OS:1 (33.3%)
From: belliash at asiotec dot eu dot org Assigned:
Status: Verified Package: PDO related
PHP Version: 7.0.5 OS: ALL
Private report: No CVE-ID: None
 [2016-04-01 12:45 UTC] belliash at asiotec dot eu dot org
Description:
------------
As you can see in above example (https://3v4l.org/0hf0u) I am setting PDO::ATTR_ERRMODE to PDO::ERRMODE_SILENT but somehow it does not make $pdo->getAttribute() silent. It is throwing an exception or warning, depending on setting, but it is IMPOSSIBLE to make it silent.

Test script:
---------------
$pdo = new \PDO('sqlite::memory:');
$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_SILENT);

$pdo->getAttribute(1);

Expected result:
----------------
NO WARNING

Actual result:
--------------
Warning: SQLSTATE[IM001]: Driver does not support this function: driver does not support that attribute in /in/0hf0u on line 6

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2016-04-02 11:18 UTC] krakjoe@php.net
-Status: Open +Status: Verified
 [2016-04-02 11:18 UTC] krakjoe@php.net
Looks intentional, as a strange response to a bug ... http://lxr.php.net/xref/PHP_7_0/ext/pdo/pdo_dbh.c#48

Looks like it has been like that for a long time ... not sure what to do ...
 [2016-04-02 14:49 UTC] belliash at asiotec dot eu dot org
IMHO this is a bug. The behaviour is way different than specified in documentation and thus should be fixed in my opinion.
 [2017-10-24 08:31 UTC] kalle@php.net
-Package: PDO Core +Package: PDO related
 [2020-12-11 14:43 UTC] nikic@php.net
The problem here is that these kinds of errors don't populate errorInfo(), so the error would get completely lost in SILENT mode.
 [2020-12-11 14:45 UTC] nikic@php.net
-Summary: Setting PDO::ATTR_ERRMODE to PDO::ERRMODE_SILENT does NOT work +Summary: PDO::ERRMODE_SILENT ignored for "implementation errors"
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Oct 05 18:01:28 2024 UTC