ソースを参照

block mysql versions where true is undefined in sanity_check

Andrew Dolgov 18 年 前
コミット
aec3ce39de
3 ファイル変更22 行追加4 行削除
  1. 7 3
      db.php
  2. 3 0
      errors.php
  3. 12 1
      functions.php

+ 7 - 3
db.php

@@ -55,19 +55,23 @@ function db_escape_string_2($s, $link) {
 	}
 }
 
-function db_query($link, $query) {
+function db_query($link, $query, $die_on_error = true) {
 	if (DB_TYPE == "pgsql") {
 		$result = pg_query($link, $query);
 		if (!$result) {
 			$query = htmlspecialchars($query); // just in case
-		  	die("Query <i>$query</i> failed: " . pg_last_error($link));			
+			if ($die_on_error) {
+				die("Query <i>$query</i> failed: " . pg_last_error($link));			
+			}
 		}
 		return $result;
 	} else if (DB_TYPE == "mysql") {
 		$result = mysql_query($query, $link);
 		if (!$result) {
 			$query = htmlspecialchars($query);
-		  	die("Query <i>$query</i> failed: " . mysql_error($link));
+			if ($die_on_error) {
+				die("Query <i>$query</i> failed: " . mysql_error($link));
+			}
 		}
 		return $result;
 	}

+ 3 - 0
errors.php

@@ -22,4 +22,7 @@
 	$ERRORS[8] = "Denied. Your access level is insufficient to access this page.";
 
 	$ERRORS[9] = "Configuration check failed";
+
+	$ERRORS[10] = "Your version of MySQL is not currently supported. Please see 
+		official site for more information.";
 ?>

+ 12 - 1
functions.php

@@ -1217,6 +1217,8 @@
 
 	function sanity_check($link) {
 
+		error_reporting(0);
+
 		$error_code = 0;
 		$result = db_query($link, "SELECT schema_version FROM ttrss_version");
 		$schema_version = db_fetch_result($result, 0, "schema_version");
@@ -1225,8 +1227,17 @@
 			$error_code = 5;
 		}
 
+		if (DB_TYPE == "mysql") {
+			$result = db_query($link, "SELECT true", false);
+			if (db_num_rows($result) != 1) {
+				$error_code = 10;
+			}
+		}
+
+		error_reporting (DEFAULT_ERROR_LEVEL);
+
 		if ($error_code != 0) {
-			print_error_xml(5);
+			print_error_xml($error_code);
 			return false;
 		} else {
 			return true;