Instanciate LoggerAppenderPDO "by hand" throw exception
-------------------------------------------------------
Key: LOG4PHP-115
URL: https://issues.apache.org/jira/browse/LOG4PHP-115
Project: Log4php
Issue Type: Bug
Components: Code
Affects Versions: 2.0
Reporter: Vaceletm
Fix For: 2.0
$logger = new LoggerAppenderPDO();
$logger->setUser($sys_dbuser);
$logger->setPassword($sys_dbpasswd);
$logger->setDSN($dsn);
$logger->setTable('forge_upgrade_log');
$logger->setInsertSql('INSERT INTO forge_upgrade_log (timestamp, logger, level,
message, thread, file, line) VALUES (?,?,?,?,?,?,?)');
$logger->setInsertPattern('%d,%c,%p,%m,%t,%F,%L');
$logger->activateOptions();
Throw:
PHP Fatal error: Uncaught exception 'PDOException' with message
'SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other
unbuffered queries are active. Consider using PDOStatement::fetchAll().
Alternatively, if your code is only ever going to run against mysql, you may
enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
attribute.' in lib/log4php/appenders/LoggerAppenderPDO.php:161
Patch:
diff --git a/lib/log4php/appenders/LoggerAppenderPDO.php
b/lib/log4php/appenders/LoggerAppenderPDO.php
index 8fadd00..f9503a3 100644
--- a/lib/log4php/appenders/LoggerAppenderPDO.php
+++ b/lib/log4php/appenders/LoggerAppenderPDO.php
@@ -126,6 +126,7 @@ class LoggerAppenderPDO extends LoggerAppender {
// test if log table exists
try {
$result = $this->db->query('SELECT * FROM ' . $this->table . '
WHERE 1 = 0');
+ $result->closeCursor();
} catch (PDOException $e) {
// It could be something else but a "no such table" is the
most likely
$result = false;
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.