Catch error in get_setting function, if database is not yet initialized

This commit is contained in:
Daniel Winzen
2021-05-22 21:23:51 +02:00
parent 726aea996d
commit 136b52d920

View File

@ -4285,12 +4285,16 @@ function get_setting(string $setting) : string {
global $db, $memcached; global $db, $memcached;
$value = ''; $value = '';
if($db instanceof PDO && ( !MEMCACHED || ! ($value = $memcached->get(DBNAME . '-' . PREFIX . "settings-$setting") ) ) ){ if($db instanceof PDO && ( !MEMCACHED || ! ($value = $memcached->get(DBNAME . '-' . PREFIX . "settings-$setting") ) ) ){
$stmt = $db->prepare('SELECT value FROM ' . PREFIX . 'settings WHERE setting=?;'); try {
$stmt->execute([$setting]); $stmt = $db->prepare( 'SELECT value FROM ' . PREFIX . 'settings WHERE setting=?;' );
$stmt->bindColumn(1, $value); $stmt->execute( [ $setting ] );
$stmt->fetch(PDO::FETCH_BOUND); $stmt->bindColumn( 1, $value );
if(MEMCACHED){ $stmt->fetch( PDO::FETCH_BOUND );
$memcached->set(DBNAME . '-' . PREFIX . "settings-$setting", $value); if ( MEMCACHED ) {
$memcached->set( DBNAME . '-' . PREFIX . "settings-$setting", $value );
}
} catch (Exception $e){
return '';
} }
} }
return $value; return $value;