Ver código fonte

! add additional check for lost db connection, and if lost die nicely

Spuds 12 anos atrás
pai
commit
c8c33ed891
1 arquivos alterados com 6 adições e 1 exclusões
  1. 6 1
      Sources/Subs-Db-mysql.php

+ 6 - 1
Sources/Subs-Db-mysql.php

@@ -124,6 +124,10 @@ function smf_db_replacement__callback($matches)
 	global $db_callback, $user_info, $db_prefix;
 
 	list ($values, $connection) = $db_callback;
+	
+	// Connection gone???  This should *never* happen at this point, yet it does :'(
+	if (!is_resource($connection))
+		display_db_error();
 
 	if ($matches[1] === 'db_prefix')
 		return $db_prefix;
@@ -321,8 +325,8 @@ function smf_db_query($identifier, $db_string, $db_values = array(), $connection
 			$_SESSION['debug_redirect'] = array();
 		}
 
-		$st = microtime();
 		// Don't overload it.
+		$st = microtime();
 		$db_cache[$db_count]['q'] = $db_count < 50 ? $db_string : '...';
 		$db_cache[$db_count]['f'] = $file;
 		$db_cache[$db_count]['l'] = $line;
@@ -386,6 +390,7 @@ function smf_db_query($identifier, $db_string, $db_values = array(), $connection
 		$ret = @mysql_query($db_string, $connection);
 	else
 		$ret = @mysql_unbuffered_query($db_string, $connection);
+		
 	if ($ret === false && empty($db_values['db_error_skip']))
 		$ret = smf_db_error($db_string, $connection);