diff --git a/db.php b/db.php index 55768f3f6..7766c0563 100644 --- a/db.php +++ b/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 $query failed: " . pg_last_error($link)); + if ($die_on_error) { + die("Query $query failed: " . pg_last_error($link)); + } } return $result; } else if (DB_TYPE == "mysql") { $result = mysql_query($query, $link); if (!$result) { $query = htmlspecialchars($query); - die("Query $query failed: " . mysql_error($link)); + if ($die_on_error) { + die("Query $query failed: " . mysql_error($link)); + } } return $result; } diff --git a/errors.php b/errors.php index 556af0882..603ef7056 100644 --- a/errors.php +++ b/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."; ?> diff --git a/functions.php b/functions.php index d1212499b..a46061bda 100644 --- a/functions.php +++ b/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;