Esempio n. 1
0
 /**
  * Permet d'exécuter une requête.
  *
  * Aucun résultat n'est renvoyé par cette fonction. Elle doit être utilisé pour effectuer
  * des insertions, des updates... Elle est de même utilisée par les
  * autres fonction de la classe comme queryRow() et queryTab().
  *
  * @param string $query chaine SQL
  * @param mixed $param variables bind de type array(":bind"=>"value")
  * @return void
  */
 public function query($query, $param = array())
 {
     global $sysNbQuery;
     // execution de la requête
     $this->query = (isset($_SERVER['HOSTNAME']) ? '/*SIG' . $_SERVER['HOSTNAME'] . 'SIG*/ ' : '') . $query;
     $this->param = $param;
     $this->stmt = null;
     $sysNbQuery = !isset($sysNbQuery) || $sysNbQuery <= 0 ? 1 : $sysNbQuery + 1;
     // Prepare de la requête
     if (!empty($param)) {
         foreach ($param as $key => $val) {
             if (strpos($query, $key) !== false) {
                 if ($param[$key] === null) {
                     $this->query = str_replace($key, 'NULL', $this->query);
                 } else {
                     $this->query = str_replace($key, "'" . $this->id->real_escape_string($param[$key]) . "'", $this->query);
                 }
             }
         }
     }
     // Execution de la requête
     $this->stmt = $this->id->query($this->query);
     if (!$this->stmt) {
         //Génération d'une DataBaseException
         throw new DataBaseException(mysqli_error($this->id), mysqli_sqlstate($this->id));
     }
     return $this->stmt;
 }