* @package BcWe core * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ */ $module["db"]["name"]="Database Class (mysqli)"; $module["db"]["ver"]="1.0.2"; class db { var $mysqli; var $host=""; var $user="root"; var $password=""; var $db="astat"; var $encoding; var $logger; var $logging; var $abfragen=0; var $exception; public const ASSOC = 1; public const NUM = 2; public const BOTH = 3; function __construct($host,$user,$password,$db,$encoding="utf8",$logging=false,$exception=false) { global $log,$config,$root,$logger; $this->mysqli; $this->host=$host; $this->user=$user; $this->password=$password; $this->db=$db; $this->logging=$logging; $this->exception=$exception; if($this->logging!=FALSE || DEBUG!=FALSE){ $this->logger=new logger("file",dirname(dirname(dirname(__FILE__))).'/logs/mysql_debug.log',5); } $this->encoding=$encoding; if($this->logging) $this->logger->write("mySQLi Klasse instanziert", 5,__LINE__,__FILE__); if(!is_object($this->mysqli)){ if($this->logging) $this->logger->write("Connection zu mySQL Server besteht nicht.", 5,__LINE__,__FILE__); $this->connect($this->host,$this->user,$this->password,$this->db); }else{ if($this->logging) $this->logger->write("Connection zu mySQL Server besteht.", 5,__LINE__,__FILE__); } if($this->encoding) $this->mysqli->set_charset($this->encoding); } function __destruct() { $this->disconnect(); } function connect($host, $user, $password, $db){ $this->mysqli=@new mysqli($host, $user, $password,$db); if($this->logging) $this->logger->write("Connect to Mysql Server", 5,__LINE__,__FILE__); if (mysqli_connect_errno()) { if($this->exception){ throw new Exception('mySQLi Connect failed'); }else{ if($this->logging) $this->logger->write("Connect Failed ". mysqli_connect_error(), 2,__LINE__,__FILE__); trigger_error("mySQLi Connect failed",E_USER_ERROR); die(); } } } function disconnect(){ if($this->logging) $this->logger->write("Closing Mysqli Connection.", 5,__LINE__,__FILE__); $this->mysqli->close(); } function query($query){ global $abfragen; if($this->logging) $this->logger->write($query, 5); $this->abfragen++; $res = $this->mysqli->query($query); if($this->mysqli->error && $this->logging){ $this->logger->write("SQL ERROR: ".$this->mysqli->error,2); } return $res; } function querys(){ return $this->abfragen; } function num_rows($result){ return $result->num_rows; } function fetch_row($result){ return $result->fetch_row(); } function fetch_array($result){ return $result->fetch_array(MYSQLI_ASSOC); } function fetch_array_num($result){ return $result->fetch_array(MYSQLI_NUM); } function escape($string){ $return = $this->mysqli->real_escape_string($string); return $return; } function escape_binary($string){ return "X'".$this->escape(bin2hex($string))."'"; } function fetch_object($result){ $row = $result->fetch_object(); return $row; } function error(){ $error = $this->mysqli->error; return $error; } function errno(){ $errno = $this->mysqli->errno; return $errno ; } function free_result($result){ $result->free_result(); } function last_id(){ $id = $this->mysqli->insert_id; return $id; } } ?>