Pdo\Abstract: Properly handle incomplete error messages

fixes #3249
This commit is contained in:
Johannes Meyer 2018-07-10 14:51:24 +02:00
parent 303637df3c
commit 44bfdd3986
1 changed files with 7 additions and 1 deletions

View File

@ -133,10 +133,16 @@ abstract class Zend_Db_Adapter_Pdo_Abstract extends Zend_Db_Adapter_Abstract
$this->_connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
$message = $e->getMessage();
if ($e->getPrevious() !== null && preg_match('~^SQLSTATE\[HY000\] \[\d{1,4}\]\s$~', $message)) {
// See https://bugs.php.net/bug.php?id=76604
$message .= $e->getPrevious()->getMessage();
}
/**
* @see Zend_Db_Adapter_Exception
*/
throw new Zend_Db_Adapter_Exception($e->getMessage(), $e->getCode(), $e);
throw new Zend_Db_Adapter_Exception($message, $e->getCode(), $e);
}
}