/** * 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; }
/** * Determine if a row exists * * $helper->exists('cars', ['make' => 'volvo']); * * @param string $table * @param string[] $predicate * @return bool */ public function exists($table, array $predicate) { $paramValues = []; $table = $this->quoteColumn($table); $sql = "select 1 from {$table} " . $this->buildPredicate($predicate, $paramValues) . ' limit 1'; return !!$this->db->query($sql, $paramValues); }