user=$user; $this->password=$pwd; $this->db_name=$db; $this->host_name=$server; $this->debug($debug); $this->method($method); //$this->current_query=new mysqli_result(); } /** * Initiate MySQL connection * @return unknown_type */ function db_connect() { $this->mysqli=new mysqli($this->host_name, $this->user, $this->password, $this->db_name); if ($this->mysqli) $this->connected=true; $this->mysqli->query("SET NAMES utf8"); return $this->connected; } /** * Close MySQL connection * @return unknown_type */ function db_disconnect() { $this->connected=$this->mysqli->close(); return !$this->connected; } /** * close MySQL connection * @return unknown_type */ function db_close() { return $this->mysqli->close(); } /** * reset to initiate phase * @return true */ function clear() { if ($this->debug) array_push($this->errors,"cleared: started_with_selection"); $this->started_with_selection=false; if ($this->query_active) $this->current_query->close(); $this->query_active=false; $this->values=null; $this->vars=null; return true; } /** * Method=0: object, otherwise array * @param int $method * @return unknown_type */ function method($method=0) { if ($this->debug) array_push($this->errors,"set method to mysqli_fetch_".(($method)?"array":"object")); return ($this->method=$method); } /** * Debug mode on or off * @param $debug * @return unknown_type */ function debug($debug=0) { if ($debug) array_push($this->errors,"set debug to ".$debug); return ($this->debug=$debug); } /** * change table name * @param $table * @return unknown_type */ function table ($table) { if ($this->debug) array_push($this->errors,"set table to ".$table); return ($this->tabel="`".$table."`"); } /** * Set the variables * @param unknown_type $vars * @return unknown_type */ function vars ($vars) { return ($this->variabelen=$vars); } /** * Set waarden per value gedefiniëerd. Er kan ook en Array meegegeven worden waar de vars in voorkomen. Dan dient $RAW true te zijn en worden alleen de betreffende waarden opgeslagen * @param $values Array * @param $RAW Bool * @return bool */ function values ($values, $RAW=false) { if (!$RAW) { if ($this->debug) array_push($this->errors, var_export($values, true)." - als values geset"); return ($this->waarden=$values); } if ($this->variabelen==null) { array_push($this->errors, "Values nog niet geënitiëerd, kan geen RAW toepassen"); return false; } $waarden=Array(); foreach ($this->variabelen as $variabele) { if (isset($values[$variabele])) { array_push($waarden, $values[$variabele]); } else { array_push($this->errors, "$variabele is geen index in de Array kan geen RAW toepassen"); } } $this->values($waarden); } /** * MySQL Where: * @param $voorwaarde * @return unknown_type */ function voorwaarde ($voorwaarde) { if ($this->debug) array_push($this->errors,"set voorwaarde to ".$voorwaarde); return ($this->voorwaarde=$voorwaarde); } /** * Apply query to mysqli_query. Selection is the argument used in mysqli_query($arg) * @param $selection * @return unknown_type */ function select($selection) { // return aantal gevonden waarden // als al gestart met selectie if ($this->started_with_selection) { array_push($this->errors,"select called again, without resetting. Try to use 'fetch_object' instead "); //return ($this->method)?mysqli_fetch_array($this->current_query):mysqli_fetch_object($this->current_query); } else { // error afhandeling if ($selection=="") { array_push($this->errors,"er is geen query/selectie gedefiniëerd"); return false; } //aanmaken opdracht $opdracht=$selection; $this->current_query=$this->mysqli->query($opdracht); $this->started_with_selection=true; if (!$this->current_query) { array_push($this->errors, "fout in ingevoerde query: { ".$opdracht." } mysqli_fout: { ".$this->mysqli->error." }"); return false; } $this->query_active=true; // finaly ok if ($this->debug) array_push($this->errors,"uitgevoerde query: { ".$opdracht." } "); } return $this->current_query->num_rows; } /** * Return fetch object * @return unknown_type */ function fetch_object () { // als al begonnen is met de selectie if ($this->started_with_selection) { return $this->current_query->fetch_object(); } else { // niet begonnen-> error array_push($this->errors,"not started with selectetion: { ".$opdracht." } "); return false; } } /** * Return mysqli_fetch_array * @return unknown_type */ function fetch_array () { // als al begonnen is met de selectie if ($this->started_with_selection) { return $this->current_query->fetch_array(MYSQLI_ASSOC); } else { // niet begonnen-> error return false; } } /** * Insert query into tablename * @return int QueryID */ function insert() { // error afhandeling if (count ($this->variabelen) == 0 ) { array_push($this->errors,"er zijn geen variabelen geënitiëerd"); return false; } if (count ($this->waarden) == 0 ) { array_push($this->errors,"er zijn geen waarden geënitiëerd"); return false; } if (count ($this->waarden) != count ($this->variabelen)) { array_push($this->errors,"aantal variabelen moet gelijk zijn aan aantal waarden"); return false; } if ($this->tabel=="") { array_push($this->errors,"er is geen tabel geënitiëerd"); return false; } //implode array.. $variabelen=""; $nr_of_waarden=count($this->variabelen); foreach ($this->variabelen as $variabele) { $variabelen.="`".$variabele."`"; // , toevoegen wanneer nodig if (--$nr_of_waarden>0) $variabelen.=", "; } // ..waarden string maken met ''.. $waarden=""; $nr_of_waarden=count($this->variabelen); foreach ($this->waarden as $waarde) { if (($waarde=="" || $waarde==" ") && !is_numeric($waarde)) $waarden.='NULL'; // getal zonder `` elseif (is_numeric($waarde)) $waarden.=$waarde; else $waarden.="'".$waarde."'"; // , toevoegen wanneer nodig if (--$nr_of_waarden>0) $waarden.=", "; } // ..en toevoegen $opdracht="INSERT INTO ".$this->tabel." (".$variabelen.") VALUES (".$waarden.")"; $resultaat=$this->mysqli->query($opdracht); if (!$resultaat) { array_push($this->errors, "fout in ingevoerde query: { ".$opdracht." } mysqli_fout: { ".$this->mysqli->error." }"); return false; } // Terughalen id (autoincrement waarde) $raw_table_name=str_replace('`','',$this->tabel); $table_status_query=$this->mysqli->query("SHOW TABLE STATUS LIKE '{$raw_table_name}'"); $table_status=$table_status_query->fetch_object(); if ($table_status->Auto_increment!=null) $query_id=$table_status->Auto_increment-1; else $query_id=true; // finaly ok if ($this->debug) array_push($this->errors,"uitgevoerde query: { ".$opdracht." } Return ID: {$query_id}"); return $query_id; } /** * Update query to table WHERE $voorwaarde * @param $voorwaarde * @return BOOL */ function update($voorwaarde="") { // error afhandeling if ($this->voorwaarde=="" && $voorwaarde=="") { array_push($this->errors,"er is geen voorwaarde gedefiniëerd"); return false; } if (count ($this->variabelen) == 0 ) { array_push($this->errors,"er zijn geen variabelen geënitiëerd"); return false; } if (count ($this->waarden) == 0 ) { array_push($this->errors,"er zijn geen waarden geënitiëerd"); return false; } if (count ($this->waarden) != count ($this->variabelen)) { array_push($this->errors,"aantal variabelen moet gelijk zijn aan aantal waarden"); return false; } if ($this->tabel=="") { array_push($this->errors,"er is geen tabel geënitiëerd"); return false; } //voorwaarde implementeren, anders is de voorwaarde al geset if ($voorwaarde!="") $this->voorwaarde=$voorwaarde; //implode array.. $update=""; $nr_of_waarden=count($this->variabelen)-1; // loop door array's heen for (; 0<=$nr_of_waarden; $nr_of_waarden--) { if (($this->waarden[$nr_of_waarden]=="" || $this->waarden[$nr_of_waarden]==" ") && !is_numeric($this->waarden[$nr_of_waarden])) $this->waarden[$nr_of_waarden]=NULL; $update.="`".$this->variabelen[$nr_of_waarden]."`='".$this->waarden[$nr_of_waarden]."'"; if ($nr_of_waarden>0) $update.=", "; } // ..en toevoegen $opdracht="UPDATE ".$this->tabel." SET ".$update." WHERE ".$this->voorwaarde.""; //uitvoeren $resultaat=$this->mysqli->query($opdracht); if (!$resultaat) { array_push($this->errors, "fout in ingevoerde query: { ".$opdracht." } mysqli_fout: { ".$this->mysqli->error." }"); return false; } // finaly ok if ($this->debug) array_push($this->errors,"uitgevoerde query: { ".$opdracht." }"); return $resultaat; } /** * MySQL delete WHERE $voorwaarde * @param $cmd (id=10) * @return bool */ function delete($voorwaarde) { // ..en toevoegen $opdracht="DELETE FROM ".$this->tabel." WHERE ".$voorwaarde; //uitvoeren $resultaat=$this->mysqli->query($opdracht); if (!$resultaat) { array_push($this->errors, "fout in ingevoerde query: { ".$opdracht." }\r\n
mysqli_fout: { ".$this->mysqli->error." }"); return false; } // finaly ok if ($this->debug) array_push($this->errors,"uitgevoerde query: { ".$opdracht." }"); return true; } /** * echo_ing debug/error information. $exit usefull when you want to close script after error. * Also: if debug is off, always call this function, to output the errors * @param $exit * @return unknown_type */ function error($exit=false) { // print all errors in sql queries / debug mode if (count($this->errors)>0 && $this->debug>=0) { echo "\n\n-+-+-+- MySQL returned errors: -+-+-+-+- \n"; foreach ($this->errors as $error) { echo chr(187)." ".$error."\n"; } echo "\n\n-+-+-+- END MySQL ERROR REPORT -+-+-+-+- \n"; } //DISABLED: HTML OUTPUT /*if (count($this->errors)>0 && $this->debug>=0) { echo "\n\n\n
\n"; echo "\n"; echo "\n"; foreach ($this->errors as $error) { echo " \n"; } echo "
MySQL returned errors:
".chr(187)." ".$error."
\n\n\n"; }*/ if ($exit) { //exit script; } exit(); } } }