SQL errors generates 500 status.
[platal.git] / classes / xdb.php
index a9cb068..098a4ec 100644 (file)
@@ -76,7 +76,9 @@ class XDB
         global $globals;
 
         if (!XDB::$mysqli && !XDB::connect()) {
-            return false;
+            header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error');
+            Platal::page()->kill('Impossible de se connecter à la base de données.');
+            exit;
         }
 
         if ($globals->debug & DEBUG_BT) {
@@ -100,6 +102,17 @@ class XDB
                                             XDB::$mysqli->error,
                                             $explain);
         }
+
+        if ($res === false) {
+            header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error');
+            if (strpos($query, 'INSERT') === false && strpos($query, 'UPDATE') === false
+                && strpos($query, 'REPLACE') === false && strpos($query, 'DELETE') === false) {
+                Platal::page()->kill('Erreur lors de l\'interrogation de la base de données');
+            } else {
+                Platal::page()->kill('Erreur lors de l\'écriture dans la base de données');
+            }
+            exit;
+        }
         return $res;
     }