diff options
author | Mario Vavti <mario@mariovavti.com> | 2016-05-09 11:58:10 +0200 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2016-05-09 11:58:10 +0200 |
commit | a3e94591bcf778d9b9ed2f49c497f5c5e66af422 (patch) | |
tree | ae19662469e64d6cc94c3107a050f761f12853ea /include/dba/dba_driver.php | |
parent | 24c1dc528dd981fc73baab8dc47840439e81f3b7 (diff) | |
parent | 6f486a3393fe33db70ef2f1684dd3b79768d1137 (diff) | |
download | volse-hubzilla-a3e94591bcf778d9b9ed2f49c497f5c5e66af422.tar.gz volse-hubzilla-a3e94591bcf778d9b9ed2f49c497f5c5e66af422.tar.bz2 volse-hubzilla-a3e94591bcf778d9b9ed2f49c497f5c5e66af422.zip |
Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev
Diffstat (limited to 'include/dba/dba_driver.php')
-rwxr-xr-x | include/dba/dba_driver.php | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/include/dba/dba_driver.php b/include/dba/dba_driver.php index 3c5b0b67e..8e205a4aa 100755 --- a/include/dba/dba_driver.php +++ b/include/dba/dba_driver.php @@ -59,8 +59,9 @@ abstract class dba_driver { const NULL_DATE = '0000-00-00 00:00:00'; const UTC_NOW = 'UTC_TIMESTAMP()'; - protected $debug = 0; protected $db; + + public $debug = 0; public $connected = false; public $error = false; @@ -302,10 +303,10 @@ function q($sql) { $stmt = vsprintf($sql, $args); if($stmt === false) { if(version_compare(PHP_VERSION, '5.4.0') >= 0) - logger('dba: vsprintf error: ' . + db_logger('dba: vsprintf error: ' . print_r(debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 1), true),LOGGER_NORMAL,LOG_CRIT); else - logger('dba: vsprintf error: ' . print_r(debug_backtrace(), true),LOGGER_NORMAL,LOG_CRIT); + db_logger('dba: vsprintf error: ' . print_r(debug_backtrace(), true),LOGGER_NORMAL,LOG_CRIT); } return $db->q($stmt); } @@ -314,7 +315,7 @@ function q($sql) { * This will happen occasionally trying to store the * session data after abnormal program termination */ - logger('dba: no database: ' . print_r($args,true),LOGGER_NORMAL,LOG_CRIT); + db_logger('dba: no database: ' . print_r($args,true),LOGGER_NORMAL,LOG_CRIT); return false; } @@ -385,7 +386,19 @@ function db_getfunc($f) { if(isset($lookup[$f]) && isset($lookup[$f][ACTIVE_DBTYPE])) return $lookup[$f][ACTIVE_DBTYPE]; - logger('Unable to abstract DB function "'. $f . '" for dbtype ' . ACTIVE_DBTYPE, LOGGER_DEBUG, LOG_ERR); + db_logger('Unable to abstract DB function "'. $f . '" for dbtype ' . ACTIVE_DBTYPE, LOGGER_DEBUG, LOG_ERR); return $f; } +// The logger function may make DB calls internally to query the system logging parameters. +// This can cause a recursion if database debugging is enabled. +// So this function preserves the current database debugging state and then turns it off while +// doing the logger() call + +function db_logger($s,$level = LOGGER_NORMAL,$syslog = LOG_INFO) { + global $db; + $saved = $db->debug; + $db->debug = false; + logger($s,$level,$syslog); + $db->debug = $saved; +}
\ No newline at end of file |