gestion des erreurs en exceptions
[mw_pages] / app / data / modules / sql / mw_data_pages.php
index e6fec6f..c7648d7 100644 (file)
       );
       $LIMIT = isset($max) ? " LIMIT ".$max.(isset($start) ? " OFFSET ".$start : "") : "";
       $sql = $COUNT_SELECT.$WHERE;
-      $rst = $sgbd->query($sql);
-      if(!isset($rst)) return false;
-      if($v_rst = $sgbd->fetch_assoc($rst)) $pages["total"] = $v_rst["n"];
-      $sgbd->free_result($rst);
-      if($pages["total"]){
-        $sql = $SELECT.$WHERE.$ORDER_BY.$LIMIT;
+      try{
         $rst = $sgbd->query($sql);
-        if(!isset($rst)) return false;
-        while($v_rst = $sgbd->fetch_assoc($rst)) $pages["list"][$v_rst["id"]] = $v_rst;
+        if($v_rst = $sgbd->fetch_assoc($rst)) $pages["total"] = $v_rst["n"];
         $sgbd->free_result($rst);
+        if($pages["total"]){
+          $sql = $SELECT.$WHERE.$ORDER_BY.$LIMIT;
+          $rst = $sgbd->query($sql);
+          while($v_rst = $sgbd->fetch_assoc($rst)) $pages["list"][$v_rst["id"]] = $v_rst;
+          $sgbd->free_result($rst);
+        }
       }
+      catch(Exception $e) { $pages = false; }
       return $pages;
     }
 
         : ""
       );
       $sql = $SELECT.$WHERE.$ORDER_BY;
-      $rst = $sgbd->query($sql);
-      if(!isset($rst)) return false;
-      while($v_rst = $sgbd->fetch_assoc($rst)){
-        $params["id_parent"] = $v_rst["id"];
-        $arbo["subs"][] = $this->pages_arbo($params);
+      try{
+        $rst = $sgbd->query($sql);
+        while($v_rst = $sgbd->fetch_assoc($rst)){
+          $params["id_parent"] = $v_rst["id"];
+          $arbo["subs"][] = $this->pages_arbo($params);
+        }
+        $sgbd->free_result($rst);
       }
-      $sgbd->free_result($rst);
+      catch(Exception $e) { $arbo = false; }
       return $arbo;
     }
 
       $page = array();
       $sgbd = $this->sgbd();
       $sql = "SELECT * FROM #--pages WHERE id=".$this->eq($id);
-      $rst = $sgbd->query($sql);
-      if(!isset($rst)) return false;
-      if($v_rst = $sgbd->fetch_assoc($rst)) $page = $v_rst;
+      try{
+        $rst = $sgbd->query($sql);
+        if($v_rst = $sgbd->fetch_assoc($rst)) $page = $v_rst;
+        $sgbd->free_result($rst);
+      }
+      catch(Exception $e) { $page = false; }
       return $page;
     }
 
       .", ".$this->eq($enabled)
       .", ".$this->eq($position)
       .")";
-      if($sgbd->query($sql)) return $sgbd->insert_id();
-      return false;
+      try{
+        $sgbd->query($sql);
+        $id_page = $sgbd->insert_id();
+      }
+      catch(Exception $e) { $id_page = false; }
+      return $id_page;
     }
 
     function set_page($id, $params, $RAZ = false){
         .", enabled=".$this->eq($enabled)
         .", position=".$this->eq($position)
         ." WHERE id=".$this->eq($id);
-        if($sgbd->query($sql)) return true;
+        try{
+          $sgbd->query($sql);
+        }
+        catch(Exception $e) { return false; }
+        return true;
       }
       return false;
     }
 
     function del_page($id){
       $sgbd = $this->sgbd();
-      if($sgbd->query("DELETE FROM #--pages WHERE id=".$this->eq($id))){
-        return $sgbd->query("UPDATE #--pages SET id_parent=NULL WHERE id_parent=".$this->eq($id)) ? true : false;
+      try{
+        $sgbd->query("UPDATE #--pages SET id_parent=NULL WHERE id_parent=".$this->eq($id));
+        $sgbd->query("DELETE FROM #--pages WHERE id=".$this->eq($id));
       }
-      return false;
+      catch(Exception $e) { return false; }
+      return true;
     }
 
   }