Edit report at https://bugs.php.net/bug.php?id=63812&edit=1
ID: 63812
Comment by: fog at yandex dot ru
Reported by:sergey at shymko dot net
Summary:PDO Triggers Warning(s) Regardless of Error Handling
Strategy
Status: Open
Type: Bug
Package:PDO related
Operating System: Linux
PHP Version:5.3.19
Block user comment: N
Private report: N
New Comment:
There is another similar problem, sometimes connection fails with message:
Warning: PDO::__construct(): MySQL server has gone away in [...file_path...] on
line N
It happens despiting that PDO::ATTR_ERRMODE is set to PDO::ERRMODE_EXCEPTION
Previous Comments:
[2012-12-20 05:34:45] sergey at shymko dot net
Relates to https://bugs.php.net/bug.php?id=63546
[2012-12-20 05:25:22] sergey at shymko dot net
Description:
PDO triggers warning(s) regardless of the chosen error handling strategy
http://php.net/manual/en/pdo.error-handling.php
Environment:
- mysql Ver 14.14 Distrib 5.5.22, for Linux (x86_64) using EditLine wrapper
Test script:
---
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
assert($adapter->getAttribute(PDO::ATTR_ERRMODE) === PDO::ERRMODE_EXCEPTION);
$waitTimeout = 1;
$adapter->exec("SET @@session.wait_timeout = {$waitTimeout}");
$statement = $adapter->query('SELECT @@session.wait_timeout');
assert($statement->fetchColumn() == $waitTimeout);
/**
* Ensure 'MySQL server has gone away' conditions are met
*/
sleep($waitTimeout + 1);
$adapter->query('SELECT 1');
Expected result:
- PDOException with message 'SQLSTATE[HY000]: General error: 2006 MySQL server
has gone away'
- No warnings (because of the chosen PDO error handling strategy)
Actual result:
--
1. When connection type is TCP/IP:
1. Warning: PDO::query() [pdo.query]: MySQL server has gone away
2. Warning: PDO::query() [pdo.query]: Error reading result set's header
1'. When connection type is Unix socket:
1. Warning: Error while sending QUERY packet. PID=18586
2. PDOException with message 'SQLSTATE[HY000]: General error: 2006 MySQL server
has gone away'
--
Edit this bug report at https://bugs.php.net/bug.php?id=63812&edit=1