<?php
class database {
protected $dbh;
protected $query;
public $last_id;
public $error;
private $debug = false;
private $username = '';
private $password = '';
private $database = '';
private $hostname = '';
private $pre = "";
private $affectedRows;
function __construct($server, $user, $pass, $database, $pre='') {
$this->hostname = $server;
$this->username = $user;
$this->password = $pass;
$this->database = $database;
$this->pre = $pre;
}
public function debugmode($status) {
$this->debug = $status;
}
private function connect() {
$this->dbh = mysql_connect($this->hostname,$this->username,$this->password);
if(($this->dbh)) {
mysql_select_db($this->database) or die(mysql_error());
}
var_dump($this->dbh);
}
private function close() {
mysql_close($this->dbh);
}
private function query($sql) {
if($this->query = mysql_query($sql, $this->dbh)) {
$this->affectedRows = mysql_affected_rows($this->dbh);
$this->last_id = mysql_insert_id();
$this->throwError();
return $this->query;
}
else {
return false;
}
}
public function fetch() {
return mysql_fetch_assoc($this->query);
}
public function doQuery($sql) {
$this->connect();
if($test = $this->query($sql)) {
return $sql;
}
else {
false;
}
$this->close();
}
// Gebruik hiervan voornamelijk binnen safelogin
public function secure($value) {
if(!ctype_digit($value)) {
$this->connect();
return mysql_real_escape_string($value);
$this->close();
}
else {
return $value;
}
}
public function last_id() {
$this->connect();
return mysql_insert_id();
$this->close();
}
public function numRows() {
$this->connect();
return mysql_num_rows($this->query);
$this->close();
}
public function fetchRow() {
return mysql_fetch_row($this->query);
}
public function affectedRows() {
return $this->affectedRows;
}
private function escape($string) {
if(get_magic_quotes_runtime()) {
$string = stripslashes($string);
}
return @mysql_real_escape_string($string);
}
public function insertQuery($table, $data) {
$q="INSERT INTO `".$this->pre.$table."` ";
$v='';
$n='';
foreach($data as $key=>$val) {
$n.="`$key`, ";
if(strtolower($val)=='null') $v.="NULL, ";
elseif(strtolower($val)=='now()') $v.="NOW(), ";
else $v.= "'".$this->escape($val)."', ";
}
$q .= "(". rtrim($n, ', ') .") VALUES (". rtrim($v, ', ') .");";
return $this->doQuery($q);
}
public function updateQuery($val, $table, $con) {
if(is_array($con)) {
$where = "where ";
$lastitem = end($con);
foreach ($con AS $key => $value) {
$where .= $key."='".$value."' ";
$where .= ($value != $lastitem) ? ('&& ') : (NULL);
}
}
else {
$where = "";
}
$query = 'update ' . $table . ' set ';
$lastvalue = end($val);
foreach ($val as $key => $value) {
$query .= $key . "='" . $value . "'";
$query .= ($value != $lastvalue) ? (', ') : (' ');
}
$query = $query . $where;
return $this->doQuery($query);
}
private function throwError() {
if(mysql_error()) {
$this->error = mysql_error();
if ($this->debug) {
echo $this->error;
}
}
}
} ?>