EuroCent
Klappstuhl 2.0
Guten Abend alle zusammen 
Ich erstelle mir gerade eine eigene MySQLi Hilfsklasse.
Dabei muss Ich nicht zwingend eine mysqli_connect(); eröffnen.
Bisher hat Sie mir ausreichende Dienste geleistet.
Gibt es hierzu einige Verbesserungen?
Ich möchte schauen dass die Klasse sogut es geht von Aussen sicher ist.
Ich verwende zwar Englische Namen, aber Deutschen Kommentar
Mein Englisch ist daher nicht das beste
Also hier mal die Datenbank Klasse.
PS.: Ab und an kommt es vor dass __numRows mir eine Warnung ausspuckt, dass ein Parameter fehlt.
Den genaueren Wortlaut hab Ich gerade nicht vorhanden. Da sie bisher funktioniert.

Ich erstelle mir gerade eine eigene MySQLi Hilfsklasse.

Dabei muss Ich nicht zwingend eine mysqli_connect(); eröffnen.
Bisher hat Sie mir ausreichende Dienste geleistet.
Gibt es hierzu einige Verbesserungen?
Ich möchte schauen dass die Klasse sogut es geht von Aussen sicher ist.

Ich verwende zwar Englische Namen, aber Deutschen Kommentar

Mein Englisch ist daher nicht das beste

Also hier mal die Datenbank Klasse.
PS.: Ab und an kommt es vor dass __numRows mir eine Warnung ausspuckt, dass ein Parameter fehlt.
Den genaueren Wortlaut hab Ich gerade nicht vorhanden. Da sie bisher funktioniert.
PHP:
<?php
/**
* Datenbank Klasse
* @author GameNetWorX
* @copyright (c) 2017, GameNetWorX
* @version 1.2.8
*/
class Database {
var $host = null;
var $user = null;
var $pass = null;
var $name = null;
var $linkID = null;
var $queryID = null;
var $recArray = array();
/**
* Datenbank Verbindung
* @param string $host Server-Adresse (ex. localhost)
* @param string $user PHPMyAdmin Benutzername
* @param string $pass PHPMyAdmin Passwort
* @param string $name PHPMyAdmin Datenbank Name
*/
public function __construct($host, $user, $pass, $name) {
$this->host = $host; //Server-Hostname (localhost)
$this->user = $user; //Datenbank Benutzername
$this->pass = $pass; //Datenbank Passwort
$this->name = $name; //Datenbank selbst (tutforum)
$this->__connect();
}
/**
* Verbindungsaufbau
*/
private function __connect() {
$this->linkID = mysqli_connect($this->host, $this->user, $this->pass);
if($this->linkID === false) echo 'Verbindung zur Datenbank fehlgeschlagen.';
else $this->__selectDB($this->name);
}
/**
* Selektiere die Datenbank
* @param string $dbname Datenbank Name
*/
private function __selectDB($dbname) {
if($dbname != '') $this->name = $dbname;
if(mysqli_select_db($this->linkID, $this->name) === false) echo 'Datenbank '.$this->name.' wurde nicht gefunden';
}
/**
* Datenbank Verbindung schliessen
*/
public function __disconnect() {
if($this->linkID) mysqli_close($this->linkID);
}
/**
* SQL-Statement an Datenbank senden
* @param string $sql SQL-Statement
* @param integer $limit Maximale Anzahl
* @param integer $offset Minimale Anzahl
* @return type Referenz-Rückgabe
*/
public function __query($sql, $limit = 0, $offset = 0) {
if($limit != 0) $sql .= " LIMIT $offset, $limit";
$this->queryID = mysqli_query($this->linkID, $sql);
return $this->queryID;
}
/**
* Liefert Datensatz als Array zürck
* @param type $queryID SQL-Statement
* @param type $type SQL-Type
* @return array Rückgabe-Array
*/
public function __fetchArray($queryID, $type = MYSQLI_BOTH) {
if($this->queryID !== false) $this->queryID = $queryID;
$this->recArray = mysqli_fetch_array($this->queryID, $type);
return $this->recArray;
}
/**
* Liefert Datensatz als Assoziatives Array zürck
* @param type $queryID SQL-Statement
* @return array Rückgabe-Array
*/
public function __fetchAssoc($queryID) {
if($this->queryID !== false) $this->queryID = $queryID;
$this->recArray = mysqli_fetch_assoc($this->queryID);
return $this->recArray;
}
/**
* Liefert die Anzahl der Einträge
* @param type $queryID SQL-Statement
* @return type Anzahl als Referenz
*/
public function __numRows($queryID) {
if($this->queryID !== false) $this->queryID = $queryID;
return mysqli_num_rows($this->queryID);
}
/**
* Maskiert spezielle Zeichen innerhalb eines Strings für die Verwendung in einer SQL-Anweisung
* @param string $value
* @return string
*/
public function realString($value) {
return mysqli_real_escape_string($this->linkID, $value);
}
/**
* Krypt das Passwort in SHA1 um
* @param $password
* @return string
*/
public function cryptedPass($password) {
$password = $this->realString($password);
return sha1($password);
}
/**
* Setzt Datenbank auf Charset um
* @param string $charset
* @return bool
*/
public function setCharset($charset = 'utf8') {
return mysqli_set_charset($this->linkID, $charset);
}
/**
* Hole die ltzte eingetragene ID
* @return int
*/
public function getIsertid() {
return mysqli_insert_id($this->linkID);
}
/**
* Debugging
* @param $value
* @param string $format
*/
public function __debug($value, $format = 's') {
printf("<pre>%{$format}</pre>", print_r($value, true));
}
}
?>