Erster Stand des mvc-Frameworks
This commit is contained in:
127
rendering/Helper/Database.php
Normal file
127
rendering/Helper/Database.php
Normal file
@@ -0,0 +1,127 @@
|
||||
<?php
|
||||
/**
|
||||
* Singleton-Klasse zur Herstellung der Datenbank-Verbindung
|
||||
*
|
||||
* @author Christian Steinle
|
||||
* @date 02.08.2016
|
||||
*
|
||||
* @copyright CS medien- & kommunikationssysteme (http://www.steinle-computer.de)
|
||||
*/
|
||||
|
||||
namespace Helper;
|
||||
|
||||
use mysqli;
|
||||
|
||||
|
||||
class Database
|
||||
{
|
||||
/**
|
||||
* Name der Datenbank-Tabelle für das Entsprechende Modell
|
||||
*/
|
||||
const TBL_NAME = '';
|
||||
|
||||
/**
|
||||
* Name des Datenbank-Feldes mit dem PrimaryKey
|
||||
*/
|
||||
const PRIMARY_KEY = '';
|
||||
|
||||
/**
|
||||
* Sortierung der Elemente für die Methode getIndex
|
||||
*/
|
||||
const ORDER_BY = '';
|
||||
|
||||
/**
|
||||
* Der Filter für den Aufruf von getIndex()
|
||||
* @var string
|
||||
*/
|
||||
static $filter = '1=1';
|
||||
|
||||
/**
|
||||
* Hier werden die Daten von getIndex() gespeichert
|
||||
* @var array
|
||||
*/
|
||||
static $data = array();
|
||||
|
||||
/**
|
||||
* @var \mysqli|null
|
||||
*/
|
||||
protected static $db = null;
|
||||
|
||||
|
||||
protected function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
protected function __clone()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Stellt die Datenbank-Verbindung her
|
||||
*
|
||||
* return void
|
||||
*/
|
||||
final protected static function getInstance()
|
||||
{
|
||||
if (null === self::$db)
|
||||
{
|
||||
self::$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
||||
self::$db->set_charset('utf8');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert ein assoziatives Array des Datensatzes mit der übergebenen ID
|
||||
*
|
||||
* @param int $id
|
||||
* @return array
|
||||
*/
|
||||
final public static function getItem($id)
|
||||
{
|
||||
$sql = 'SELECT * FROM ' . static::TBL_NAME . ' WHERE ' . static::PRIMARY_KEY . ' = ' . $id . ';';
|
||||
$data = self::query($sql);
|
||||
return (!is_array($data) || empty($data)) ? array() : current($data);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert ein mehrdimensionales, assoziatives Array mit allen Datensätzen, die zum Filter passen
|
||||
* als Schlüssel der ersten Dimension dient der Wert des Primär-Schlüssels der Datenbank-Tabelle
|
||||
* Legt alle Daten in self::$data ab
|
||||
*
|
||||
* @see self::query()
|
||||
* @see self::$data
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
final public static function getIndex()
|
||||
{
|
||||
$sql = 'SELECT * FROM ' . static::TBL_NAME . ' WHERE ' . static::$filter . ' ' . static::ORDER_BY . ';';
|
||||
self::$data = self::query($sql);
|
||||
return self::$data;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert ein mehrdimensionales, assoziatives Array mit allen Datensätzen, die zum SQL-Query passen
|
||||
* als Schlüssel der ersten Dimension dient der Wert des Primär-Schlüssels der Datenbank-Tabelle
|
||||
*
|
||||
* @param string $sql
|
||||
* @return array
|
||||
*/
|
||||
final protected static function query($sql)
|
||||
{
|
||||
self::getInstance();
|
||||
$result = self::$db->query($sql);
|
||||
$data = array();
|
||||
while ($tmpData = $result->fetch_assoc())
|
||||
{
|
||||
$data[$tmpData[static::PRIMARY_KEY]] = $tmpData;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user