From c928cec07d943525fc09b9453bdc0ac6f61e4447 Mon Sep 17 00:00:00 2001 From: Florian Pesth Date: Wed, 27 Dec 2023 11:50:57 +0100 Subject: [PATCH] Move db function to singleton class --- html/SQL.php | 756 ++++++++++++++++++--------------------------------- 1 file changed, 266 insertions(+), 490 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index a7dfaf0..aff47d8 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -3,33 +3,80 @@ require_once 'konfiguration.php'; -function ConnectDB() -{ - $datasourcename = "mysql:host=" . MYSQL_HOST . ";dbname=". MYSQL_DATENBANK . ";charset=utf8mb4"; - $pdo = new PDO( - $datasourcename, - MYSQL_BENUTZER, - MYSQL_KENNWORT - ); - $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); - return $pdo; +class DB { + private static $instance = null; + private $pdo = null; + private $stmts = array(); + + private function __construct() + { + $datasourcename = "mysql:host=" . MYSQL_HOST . ";dbname=". MYSQL_DATENBANK . ";charset=utf8mb4"; + self::$pdo = new PDO( + $datasourcename, + MYSQL_BENUTZER, + MYSQL_KENNWORT + ); + self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); + } + + public static function getInstance() + { + if(self::$instance == null){ + self::$instance = new DB(); + } + return self::$instance; + } + + public function prepare($method, $sql, $variant = '') + { + self::$stmts[$method . "::" . $variant] = self::$pdo->prepare($sql); + } + + public function execute($method, $values = array(), $variant = '') + { + return self::$stmts[$method . "::" . $variant]->execute($values); + } + + public function fetch($method, $variant = '', int $mode = PDO::FETCH_DEFAULT, int $cursorOrientation = PDO::FETCH_ORI_NEXT, int $cursorOffset = 0) : mixed + { + return self::$stmts[$method . "::" . $variant]->fetch($mode,$cursorOrientation,$cursorOffset); + } + + public function fetchAll($method, $variant = '') + { + return self::$stmts[$method . "::" . $variant]->fetchAll(); + } + + public function errorCode($method, $variant = '') + { + return self::$stmts[$method . "::" . $variant]->errorCode(); + } + + public function errorInfo($method, $variant = '') + { + return self::$stmts[$method . "::" . $variant]->errorInfo(); + } + + public function onErrorDie($method, $variant = '') + { + if (self::errorCode($method, $variant) != 1) { + echo $method . "::" . $variant . " ungueltige Abfrage
\n"; + echo "sql:" . $stmts[$method . "::" . $variant]->queryString . "
\n"; + die('Ungueltige Abfrage: ' . self::errorInfo($method, $variant)[2]); + } + } } -function CreateHelfer($pdo, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1) +function CreateHelfer($HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1) { // Neuen Helfer anlegen $HelferPasswort = "€" . $HelferPasswort . "ß"; $PasswortHash = password_hash($HelferPasswort, PASSWORD_DEFAULT); - static $sql = "INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel)". - " VALUES (:name,:email,:handy,:status,:bildfile,:doreport,:passwort,:helferlevel)"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare($sql); - $stmts_prepared = true; - } - $db_erg = $stmt->execute([ + $db = DB::getInstance(); + $db->prepare(__METHOD__,"INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel)". + " VALUES (:name,:email,:handy,:status,:bildfile,:doreport,:passwort,:helferlevel)"); + $db_erg = $db->execute(__METHOD__,[ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, @@ -40,43 +87,32 @@ function CreateHelfer($pdo, $HelferName, $HelferEmail, $HelferHandy, $HelferPass "helferlevel" => $HelferLevel ]); - $stmt->fetch(); error_log(date('Y-m-d H:i') . " CreateHelfer: $HelferName angelegt mit Email $HelferEmail Handy $HelferHandy \n", 3, LOGFILE); return $db_erg; } // testet fuer urllogin, ob Helfer bereits existiert -function HelferIstVorhanden($pdo, $Email) +function HelferIstVorhanden($Email) { - static $sql = "SELECT count(HelferID) AS Anzahl FROM Helfer WHERE Email = :email"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare($sql); - $stmt_prepared = true; - } - $stmt->execute(["email" => $Email]); + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT count(HelferID) AS Anzahl FROM Helfer WHERE Email = :email"); + $db->execute(__METHOD__,["email" => $Email]); // TODO Test, that this still works - $zeile = $stmt->fetchAll(); + $zeile = $db->fetchAll(__METHOD__); return $zeile['Anzahl']; } //TODO: pruefen, ob Helfer bereits eingeloggt -function HelferLogin($pdo, $HelferEmail, $HelferPasswort, $HelferStatus) +function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus) { //echo "Test
"; // Helfer Suchen - static $sql = "SELECT HelferID,Admin,Name,Passwort,HelferLevel FROM Helfer WHERE Email=:email"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare($sql); - $stmt_prepared = true; - } - $db_erg = $stmt->execute(["email" => $HelferEmail]); - if ($stmt->errorCode() != 1) { + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT HelferID,Admin,Name,Passwort,HelferLevel FROM Helfer WHERE Email=:email"); + $db_erg = $db->execute(__METHOD__,["email" => $HelferEmail]); + if ($db->errorCode(__METHOD__) != 1) { echo "Login ungueltige Abfrage"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); + die('Ungueltige Abfrage: ' . $stmt->errorInfo(__METHOD__)[2]); } while ($zeile = $stmt->fetchAll()) { $HelferPasswort = "€" . $HelferPasswort . "ß"; @@ -101,42 +137,20 @@ function HelferLogin($pdo, $HelferEmail, $HelferPasswort, $HelferStatus) //TODO: HelferLevel function HelferListe($pdo) { - - static $sql = "SELECT HelferID,Name FROM Helfer"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare($sql); - $stmt_prepared = true; - } - $db_erg = $stmt->execute(); - if ($stmt->errorCode() != 1) { - echo "Helferliste ungueltige Abfrage"; - die('Unueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT HelferID,Name FROM Helfer"); + $db_erg = $db->execute(__METHOD__); + $db->onErrorDie(__METHOD__); return $db_erg; } function Helferdaten($pdo, $HelferID) { - - static $sql = "SELECT * FROM Helfer Where HelferID = :helferid"; - static $stmt = false; - if(!$stmt) $stmt = $pdo->prepare($sql); - static $stmt_prepared = false; - $db_erg stmt_prepared { - $stmt->execute(["helferid" => $HelferID]); - $stmt_prepared = true; - } - - if ($stmt->errorCode() != 1) { - echo "Helferdaten ungueltige Abfrage
\n"; - echo "sql:$sql
\n"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT * FROM Helfer Where HelferID = :helferid"); + $db_erg = $db->execute(__METHOD__,["helferid" => $HelferID]); + $db->onErrorDie(__METHOD__); return $db_erg; } @@ -144,34 +158,31 @@ function Helferdaten($pdo, $HelferID) function HelferdatenAendern($pdo, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0) { - - static $stmts_prepared = false; - static $stmts = array(); - if(!$stmts_prepared) { - $stmts['password_empty'] = $pdo->prepare("UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy Where HelferId=:id"); - $stmts['password_empty_admin'] = $pdo->prepare("UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Admin=:admin Where HelferId=:id"); - $stmts['password_given'] = $pdo->prepare("UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort Where HelferId=:id"); - $stmts['password_given_admin'] = $pdo->prepare("UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort,Admin=:admin Where HelferId=:id"); - $stmts_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy Where HelferId=:id",'password_empty'); + $db->prepare(__METHOD__,"UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Admin=:admin Where HelferId=:id",'password_empty_admin'); + $db->prepare(__METHOD__,"UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort Where HelferId=:id",'password_given'); + $db->prepare(__METHOD__,"UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort,Admin=:admin Where HelferId=:id",'password_given_admin'); if ($HelferNewPasswort == "") { //$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy' ".($HelferIsAdmin!=-1)?',Admin='$HelferIsAdmin.':'." Where HelferId=".$HelferID; if ($HelferIsAdmin == -1) { - $db_erg = $stmts['password_empty']->execute([ + $db_erg = $db->execute(__METHOD__,[ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, "id" => $HelferID - ]); + ],'password_empty'); + $db->onErrorDie(__METHOD__,'password_empty'); } else { - $db_erg = $stmts['password_empty_admin']->execute([ + $db_erg = $db->execute(__METHOD__,[ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, "admin" => $HelferIsAdmin, "id" => $HelferID - ]); + ],'password_empty_admin'); + $db->onErrorDie(__METHOD__,'password_empty_admin'); } echo "
  • Helferdaten geändert
  • "; if ($AdminID != 0) { @@ -183,22 +194,24 @@ function HelferdatenAendern($pdo, $HelferName, $HelferEmail, $HelferHandy, $Helf $HelferNewPasswort = "€" . $HelferNewPasswort . "ß"; $PasswortHash = password_hash($HelferNewPasswort, PASSWORD_DEFAULT); if ($HelferIsAdmin == -1) { - $db_erg = $stmts['password_given']->execute([ + $db_erg = $db->execute(__METHOD__,[ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, "passwort" => $PasswortHash, "id" => $HelferID - ]); + ],'password_given'); + $db->onErrorDie(__METHOD__, 'password_given'); } else { - $db_erg = $stmts['password_given_admin']->execute([ + $db_erg = $db->execute(__METHOD__,[ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, "passwort" => $PasswortHash, "admin" => $HelferIsAdmin, "id" => $HelferID - ]); + ],'password_given_admin'); + $db->onErrorDie(__METHOD__, 'password_given_admin'); } //echo $sql; echo "
  • Passwort geändert
  • "; @@ -209,152 +222,84 @@ function HelferdatenAendern($pdo, $HelferName, $HelferEmail, $HelferHandy, $Helf } } - foreach ($stmts as $stmt) { - if (!is_null($stmt->errorCode()) && ($stmt->errorCode() != 1) ) { - echo "HelferdatenAendern ungueltiges Statement"; - echo $stmt->queryString; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - } - return $db_erg; } - - - -function AlleSchichten($pdo, $Sort, $HelferLevel = 1) +function AlleSchichten($Sort, $HelferLevel = 1) { - static $stmts_prepared = false; - static $stmts = array(); - if(!$stmts_prepared) { - $stmts['sort_by_von'] = $pdo->prepare("select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Von"); - $stmts['sort_by_was_von'] = $pdo->prepare("select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Was,Von"); - $stmts_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Von",'sort_by_von'); + $db->prepare(__METHOD__,"select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Was,Von",'sort_by_was_von'); if ($Sort == '1') { - $db_erg = $stmts['sort_by_von']->execute(["helferlevel" => $HelferLevel]); + $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel],'sort_by_von'); + $db->onErrorDie(__METHOD__,'sort_by_von'); } else { - $db_erg = $stmts['sort_by_was_von']->execute(["helferlevel" => $HelferLevel]); - } - - foreach ($stmts as $stmt) { - if (!is_null($stmt->errorCode()) && ($stmt->errorCode() != 1) ) { - echo "AlleSchichten ungueltige Abfrage"; - echo $Sort; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel],'sort_by_was_von'); + $db->onErrorDie(__METHOD__,'sort_by_was_von'); } return $db_erg; } -function AlleSchichtenCount($db_link, $HelferLevel = 1) +function AlleSchichtenCount($HelferLevel = 1) { //$sql = "select SUM(Soll) As Anzahl from SchichtUebersicht where HelferLevel=$HelferLevel"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); - $stmt_prepared = true; - } - - - $db_erg = $stmt->execute(["helferlevel" => $HelferLevel]); - - if ($stmt->errorCode() != 1){ - echo "AlleSchichtenCount ungueltige Abfrage"; - echo $Sort; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - - $zeile = $stmt->fetchAll(); + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); + $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel]); + $db->onErrorDie(__METHOD__); + $zeile = $db->fetchAll(__METHOD__); return $zeile['Anzahl']; } function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); - $stmt_prepared = true; - } - - - $db_erg = $stmt->execute(["helferlevel" => $Helferlevel]); - - if ($stmt->errorCode() != 1){ - echo "AlleSchichtenCount ungueltige Abfrage"; - echo $Sort; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - - $zeile = $stmt->fetchAll(); + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); + $db_erg = $db->execute(__METHOD__,["helferlevel" => $Helferlevel]); + $db->onErrorDie(__METHOD__); + $zeile = $db->fetchAll(__METHOD__); return $zeile['Anzahl']; } -function AlleSchichtenImZeitbereich($pdo, $Von, $Bis, $HelferLevel = 1) +function AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1) { // SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden - static $stmts_prepared = false; - static $stmts = array(); - if(!$stmts_prepared) { - $stmts['helferlevel_not_set'] = $pdo->prepare("select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID order by Was,Von"); - $stmts['helferlevel_set'] = $pdo->prepare("select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.HelferLevel=:helferlevel order by Was,Von"); - $stmts_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID order by Was,Von",'helferlevel_not_set'); + $db->prepare(__METHOD__,"select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.HelferLevel=:helferlevel order by Was,Von",'helferlevel_set'); if ($HelferLevel == -1) { - $db_erg = $stmts['helferlevel_not_set']->execute([ + $db_erg = $db->execute(__METHOD__,[ "von" => $Von, "bis" => $Bis - ]); + ],'helferlevel_not_set'); + $db->onErrorDie(__METHOD__,'helferlevel_not_set'); } else { - $db_erg = $stmts['helferlevel_set']->execute([ + $db_erg = $db->execute(__METHOD__,[ "von" => $Von, "bis" => $Bis, "helferlevel" => $HelferLevel - ]); - } - - foreach ($stmts as $stmt) { - if (!is_null($stmt->errorCode()) && ($stmt->errorCode() != 1) ) { - echo "AlleSchichtenImZeitbereich ungueltige Abfrage
    "; - echo $stmt->queryString; - die('
    Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + ],'helferlevel_set'); + $db->onErrorDie(__METHOD__,'helferlevel_set'); } return $db_erg; } -function AlleSchichtenEinesHelfers($pdo, $HelferID) +function AlleSchichtenEinesHelfers($HelferID) { - - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid order by Von"); - $stmt_prepared = true; - } - - $db_erg = $stmt->execute(["helferid" => $HelferID]); - - if ($stmt->errorCode() != 1){ - echo "AlleSchichtenEinesHelfers ungueltige Abfrage"; - echo $HelferID; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - - + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid order by Von"); + $db_erg = $db->execute(__METHOD__,["helferid" => $HelferID]); + $db->onErrorDie(__METHOD__); return $db_erg; } @@ -367,7 +312,7 @@ function HelferLoeschen($db_link, $HelferID, $AdminID) static $stmt = false; static $stmt_prepared = false; if(!$stmt_prepared) { - $stmt = $pdo->prepare("Delete from Helfer where HelferID='$HelferID'";); + $stmt = $pdo->prepare("Delete from Helfer where HelferID='$HelferID'"); $stmt_prepared = true; } @@ -398,53 +343,33 @@ function HelferLoeschen($db_link, $HelferID, $AdminID) } } -function SchichtIdArrayEinesHelfers($db_link, $HelferID) +function SchichtIdArrayEinesHelfers($HelferID) { - - $HelferID = mysqli_real_escape_string($db_link, $HelferID); - // Array, um Zeilen mit von mir belegten Schichten in der Schichtuebersicht einfaerben zu koennenn - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("SELECT SchichtID FROM EinzelSchicht WHERE HelferID = :id"); - $stmt_prepared = true; - } - //print_r($sql); - $db_erg = $stmt->execute(["id" => $HelferID]); + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT SchichtID FROM EinzelSchicht WHERE HelferID = :id"); + $db_erg = $db->execute(__METHOD__,["id" => $HelferID]); $schichtIDs = array(); - while ($zeile = $stmt->fetch()) { + while ($zeile = $db->fetch(__METHOD__)) { $schichtIDs[] = $zeile[0]; } return($schichtIDs); } -function AlleSchichtenEinesHelfersVonJetzt($db_link, $HelferID) +function AlleSchichtenEinesHelfersVonJetzt($HelferID) { - // TODO: fix GETDATE() array to string conversion - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:id and Bis>:bis order by Von"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:id and Bis>:bis order by Von"); //$sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." and Bis>'2023-05-20' order by Von"; - //echo $sql; - $db_erg = $stmt->execute([ + $db_erg = $db->execute(__METHOD__,[ "id" => $HelferID, "bis" => GETDATE() ]); - - if($stmt->errorCode() != 1){ - echo "AlleSchichtenEinesHelfers ungueltige Abfrage"; - echo $HelferID; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - + $db->onErrorDie(__METHOD__); return $db_erg; } @@ -452,48 +377,28 @@ function SchichtenSummeEinesHelfers($db_link, $HelferID) { //$sql = "select count Schicht.Dauer as Anzahl FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." order by Von"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select count(*) as Anzahl, SUM(TIME_TO_SEC(Schicht.Dauer)) as Dauer FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select count(*) as Anzahl, SUM(TIME_TO_SEC(Schicht.Dauer)) as Dauer FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid"); //echo $sql; - $db_erg = $stmt->execute(["helferid" => $HelferID]); - - if ($stmt->errorCode() != 1){ - echo "SchichtenSummeEinesHelfers ungueltige Abfrage"; - echo $HelferID; - echo $stmt->queryString; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - - + $db_erg = $db->execute(__METHOD__,["helferid" => $HelferID]); + $db->onErrorDie(__METHOD__); return $db_erg; } + +// FIXME function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0) { + $db = DB::getInstance(); - $HelferID = mysqli_real_escape_string($db_link, $HelferID); - $SchichtId = mysqli_real_escape_string($db_link, $SchichtId); - $EinzelSchichtId = mysqli_real_escape_string($db_link, $EinzelSchichtId); - $Aktion = mysqli_real_escape_string($db_link, $Aktion); - $AdminID = mysqli_real_escape_string($db_link, $AdminID); - - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("SELECT Schicht.Von, Schicht.Bis, Dienst.Was, Helfer.Name - FROM EinzelSchicht - JOIN Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID - JOIN Dienst ON Schicht.DienstID = Dienst.DienstID - JOIN Helfer ON EinzelSchicht.HelferID = Helfer.HelferID - WHERE EinzelSchicht.HelferID = $HelferID - AND ( Schicht.SchichtID = $SchichtId OR EinzelSchicht.EinzelSchichtID = $EinzelSchichtId) - "); - $stmt_prepared = true; - } + $db->prepare(__METHOD__,"SELECT Schicht.Von, Schicht.Bis, Dienst.Was, Helfer.Name + FROM EinzelSchicht + JOIN Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID + JOIN Dienst ON Schicht.DienstID = Dienst.DienstID + JOIN Helfer ON EinzelSchicht.HelferID = Helfer.HelferID + WHERE EinzelSchicht.HelferID = $HelferID + AND ( Schicht.SchichtID = $SchichtId OR EinzelSchicht.EinzelSchichtID = $EinzelSchichtId) + "); //error_log(date('Y-m-d H:i') . " " . $sql ."\n",3,LOGFILE); $db_erg = mysqli_query($db_link, $sql); @@ -518,77 +423,62 @@ function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $A } } -function HelferSchichtZuweisen($pdo, $HelferID, $SchichtId, $AdminID = 0) +function HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0) { // Abfrage, ob bereits eine Einzelschicht in der selben Schicht vom Helfer existiert - static $stmts = false; - static $stmts_prepared = false; - if(!$stmts_prepared) { - $stmts['einzelschicht_exists'] = $pdo->prepare("SELECT EinzelSchichtID from EinzelSchicht WHERE SchichtID=:schichtid and HelferID=:helferid"); - $stmts['new_einzelschicht'] = $pdo->prepare("INSERT INTO EinzelSchicht(SchichtID,HelferID) VALUES (:schichtid,:helferid)"); - $stmts_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT EinzelSchichtID from EinzelSchicht WHERE SchichtID=:schichtid and HelferID=:helferid",'einzelschicht_exists'); + $db->prepare(__METHOD__,"INSERT INTO EinzelSchicht(SchichtID,HelferID) VALUES (:schichtid,:helferid)",'new_einzelschicht'); - $db_erg = $stmts['einzelschicht_exists']->execute([ + $db_erg = $db->execute(__METHOD__,[ "schichtid" => $SchichtId, "helferid" => $HelferID - ]); + ],'einzelschicht_exists'); - if($stmt['einzelschicht_exists']->fetch()){ + if($db->fetch(__METHOD__,'einzelschicht_exists')){ echo "HelferSchichtZuweisen: Schicht existiert bereits!"; return false; } // Helfer Schicht zuweisen //echo ''; - $db_erg = $stmts['new_einzelschicht']->execute([ + $db_erg = $db->execute(__METHOD__,[ "schichtid" => $SchichtId, "helferid" => $HelferID - ]); + ],'new_einzelschicht'); + + $db->onErrorDie(__METHOD__,'new_einzelschicht'); - if ($stmts['new_einzelschicht']->errorCode() != 1){ - echo "HelferSchichtZuweisen ungueltige Abfrage"; - echo $HelferID; - die('Ungueltige Abfrage: ' . $stmts['new_einzelschicht']->errorInfo()[2]); - } LogSchichtEingabe($db_link, $HelferID, $SchichtId, -1, "eingetragen", $AdminID); return $db_erg; } -function HelferVonSchichtLoeschen($pdo, $HelferID, $EinzelSchichtID, $AdminID = 0) +function HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID, $AdminID = 0) { // Log vor Löschen, damit Einzelschicht abgefragt werden kann LogSchichtEingabe($db_link, $HelferID, -1, $EinzelSchichtID, "entfernt", $AdminID); // Lösche Einzelschicht - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("Delete From EinzelSchicht Where EinzelSchichtID = :id"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"Delete From EinzelSchicht Where EinzelSchichtID = :id"); //echo $sql; - $db_erg = $stmt->execute(["id" => $EinzelSchichtID]); + $db_erg = $db->execute(__METHOD__,["id" => $EinzelSchichtID]); return $db_erg; } -function HelferVonSchichtLoeschen_SchichtID($pdo, $HelferID, $SchichtID, $AdminID = 0) +function HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID, $AdminID = 0) { // Log vor Löschen, damit Einzelschicht abgefragt werden kann LogSchichtEingabe($db_link, $HelferID, $SchichtID, -1, "entfernt", $AdminID); // Lösche Einzelschicht - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("Delete From EinzelSchicht Where SchichtID = :schichtid and HelferID = :helferid limit 1;"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"Delete From EinzelSchicht Where SchichtID = :schichtid and HelferID = :helferid limit 1;"); //echo $sql; - $db_erg = $stmt->execute([ + $db_erg = $db->execute(__METHOD__,[ "schichtid" => $SchichtID, "helferid" => $HelferID ]); @@ -596,94 +486,53 @@ function HelferVonSchichtLoeschen_SchichtID($pdo, $HelferID, $SchichtID, $AdminI return $db_erg; } -function DetailSchicht($pdo, $InfoSchichtID) +function DetailSchicht($InfoSchichtID) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select Was,Wo,Info,Name,Handy,Email,DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Dienst,Schicht,Helfer where Dienst.DienstID=Schicht.DienstID AND Helfer.HelferID=Dienst.Leiter And SchichtID=:id"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select Was,Wo,Info,Name,Handy,Email,DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Dienst,Schicht,Helfer where Dienst.DienstID=Schicht.DienstID AND Helfer.HelferID=Dienst.Leiter And SchichtID=:id"); //echo $sql; - $db_erg = $stmt->execute(["id" => $InfoSchichtID]); + $db_erg = $db->execute(__METHOD__,["id" => $InfoSchichtID]); - if ($stmt->errorCode() != 1){ - echo "Details ungueltige Abfrage "; - echo $InfoSchichtID; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db->onErrorDie(__METHOD__); - $zeile = $stmt->fetchAll(); + $zeile = $db->fetchAll(__METHOD__); return $zeile; } - -function BeteiligteHelfer($pdo, $InfoSchichtID) +function BeteiligteHelfer($InfoSchichtID) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=:id"); - $stmt_prepared = true; - } - - $db_erg = $stmt->execute(["id" => $InfoSchichtID]); - - if ($stmt->errorCode() != 1){ - echo "Details ungueltige Abfrage "; - echo $InfoSchichtID; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=:id"); + $db_erg = $db->execute(__METHOD__,["id" => $InfoSchichtID]); + $db->onErrorDie(__METHOD__); return $db_erg; } -function GetDienste($db_link) +function GetDienste() { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was"); - $stmt_prepared = true; - } - $db_erg = mysqli_query($db_link, $sql); - if ($stmt->errorCode() != 1){ - echo "GetDienste ungueltige Abfrage"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was"); + $db_erg = $db->execute(__METHOD__); + $db->onErrorDie(__METHOD__); return $db_erg; } -function GetDiensteChilds($pdo, $DienstID) +function GetDiensteChilds($DienstID) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID=:id order by Was"); - $stmt_prepared = true; - } - - $db_erg = $stmt->execute(["id" => $DienstID]); - - if ($stmt->errorCode() != 1){ - echo "GetDienste ungueltige Abfrage"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID=:id order by Was"); + $db_erg = $db->execute(__METHOD__,["id" => $DienstID]); + $db->onErrorDie(__METHOD__); return $db_erg; } - -function ChangeDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) +function ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("UPDATE Dienst SET Was=:was, Wo=:wo, Info=:info, Leiter=:leiter, ElternDienstID=:elterndienstid where DienstID=:dienstid"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"UPDATE Dienst SET Was=:was, Wo=:wo, Info=:info, Leiter=:leiter, ElternDienstID=:elterndienstid where DienstID=:dienstid"); - $db_erg = $stmt->execute([ + $db_erg = $db->execute(__METHOD__,[ "was" => $Was, "wo" => $Wo, "info" => $Info, @@ -692,23 +541,14 @@ function ChangeDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $Helf "dienstid" => $DienstID ]); - if ($stmt->errorCode() != 1){ - echo "Fehler Change Dienst"; - echo $sql; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db->onErrorDie(__METHOD__); } -function NewDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) +function NewDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values (:was,:wo,:info,:leiter,:elterndienstid,:helferlevel)"); - $stmt_prepared = true; - } - - $db_erg = $stmt->execute([ + $db = DB::getInstance(); + $db->prepare(__METHOD__,"INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values (:was,:wo,:info,:leiter,:elterndienstid,:helferlevel)"); + $db_erg = $db->execute(__METHOD__,[ "was" => $Was, "wo" => $Wo, "info" => $Info, @@ -717,46 +557,35 @@ function NewDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferL "helferlevel" => $HelferLevel ]); - $db_erg = mysqli_query($db_link, $sql); - if ($stmt->errorCode() != 1){ + if ($db->errorCode(__METHOD__) != 1){ echo "Fehler New Dienst"; // echo $sql; - $err = $stmt->errorInfo()[2]; - die('Ungueltige Abfrage: ' . $err); + $err = $stmt->errorInfo(__METHOD__)[2]; error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit Anfrage $sql Grund: $err \n", 3, LOGFILE); + die('Ungueltige Abfrage: ' . $err); } else { error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName(ID:HelferID) hat Dienst angelegt mit Was: $WAS Wo: $Wo Info: $Info Leiter: $Leiter Gruppe $Gruppe, HelferLevel $HelferLevel \n", 3, LOGFILE); } } -function DeleteDienst($db_link, $DienstID, $Rekursiv) +function DeleteDienst($DienstID, $Rekursiv) { if ($Rekursiv) { return false; } else { // Pruefen ob noch Schichten eingetragen sind - static $stmts_prepared = false; - static $stmts = array(); - if(!$stmts_prepared) { - $stmts['check_dienst'] = $pdo->prepare("SELECT SchichtID FROM Schicht where DienstID=:id"); - $stmts['delete_dienst'] = $pdo->prepare("DELETE FROM Dienst where DienstID=:id"); - $stmts_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT SchichtID FROM Schicht where DienstID=:id",'check_dienst'); + $db->prepare(__METHOD__,"DELETE FROM Dienst where DienstID=:id",'delete_dienst'); - $db_erg = $stmts['check_dienst']->execute(['id' => $DienstID]); + $db_erg = $db->execute(__METHOD__,['id' => $DienstID],'check_dienst'); - if ($stmts['check_dienst']->errorCode() != 1){ - echo "Fehler DeleteDienst"; - die('Ungueltige Abfrage: ' . $stmts['check_dienst']->errorInfo()[2]); - } + $db->onErrorDie(__METHOD__,'check_dienst'); - if ($stmts['check_dienst']->fetch()) { + if ($db->fetch(__METHOD__,'check_dienst')) { // Eintrag löschen - $db_erg = $stmts['delete_dienst']->execute(['id' => $DienstID]); - if ($stmts['delete_dienst']->errorCode() != 1){ - echo "Fehler DeleteDienst"; - die('Ungueltige Abfrage: ' . $stmts['delete_dienst']->errorInfo()[2]); - } + $db_erg = $db->execute(__METHOD__,['id' => $DienstID],'delete_dienst'); + $db->onErrorDie(__METHOD__,'delete_dienst'); return true; } else { return false; @@ -764,47 +593,32 @@ function DeleteDienst($db_link, $DienstID, $Rekursiv) } } -function GetSchichtenEinesDienstes($db_link, $DienstID) +function GetSchichtenEinesDienstes($DienstID) { //$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon FROM Schicht where DienstID=".$DienstID; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis FROM Schicht where DienstID=:id"); - $stmt_prepared = true; - } - $db_erg = $stmt->execute(['id' => $DienstID]); - if ($stmt->errorCode() != 1){ - echo "GetSchichtenEinesDienstes ungueltige Abfrage"; - echo $sql; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis FROM Schicht where DienstID=:id"); + $db_erg = $db->execute(__METHOD__,['id' => $DienstID]); + $db->onErrorDie(__METHOD__); return $db_erg; } -function ChangeSchicht($db_link, $SchichtID, $Von, $Bis, $Soll) +function ChangeSchicht($SchichtID, $Von, $Bis, $Soll) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("UPDATE Schicht SET Von=:von, Bis=:bis, Soll=:soll where SchichtID=:id"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"UPDATE Schicht SET Von=:von, Bis=:bis, Soll=:soll where SchichtID=:id"); - $db_erg = $stmt->execute([ + $db_erg = $db->execute(__METHOD__,[ 'von' => $Von, 'bis' => $Bis, 'soll' => $Soll, 'id' => $SchichtID ]); - if ($stmt->errorCode() != 1){ - echo "Fehler ChangeSchicht"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db->onErrorDie(__METHOD__); } -function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll) +function NewSchicht($DienstID, $Von, $Bis, $Soll) { /* @@ -819,25 +633,21 @@ function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll) return Null; } */ - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("INSERT INTO Schicht (DienstID, Von, Bis, Soll) values (:id,:von,:bis,:soll)"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"INSERT INTO Schicht (DienstID, Von, Bis, Soll) values (:id,:von,:bis,:soll)"); - $db_erg = $stmt->execute([ + $db_erg = $db->execute(__METHOD__,[ 'id' => $DienstID, 'von' => $Von, 'bis' => $Bis, 'soll' => $Soll ]); - if ($stmt->errorCode() != 1){ + if ($db->errorCode(__METHOD__) != 1){ echo "Keine Schicht erstellt"; //echo $sql; - error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit $sql \n", 3, LOGFILE); - $err = $stmt->errorInfo()[2]; + error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit $sql \n", 3, LOGFILE); + $err = $stmt->errorInfo(__METHOD__)[2]; die('Ungueltige Abfrage: ' . $err); } else { //TODO: DienstID aufloesen @@ -845,34 +655,24 @@ function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll) } } -function DeleteSchicht($pdo, $SchichtID, $Rekursiv) +function DeleteSchicht($SchichtID, $Rekursiv) { - static $stmts_prepared = false; - static $stmts = false; - if(!$stmts_prepared) { - $stmts['check_einzelschicht'] = $pdo->prepare("SELECT Name FROM EinzelSchicht,Helfer where SchichtID=:id and Helfer.HelferID=EinzelSchicht.HelferID"); - $stmts['delete_einzelschicht'] = $pdo->prepare("DELETE FROM Schicht where SchichtID=:id"); - $stmts_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT Name FROM EinzelSchicht,Helfer where SchichtID=:id and Helfer.HelferID=EinzelSchicht.HelferID",'check_einzelschicht'); + $db->prepare(__METHOD__,"DELETE FROM Schicht where SchichtID=:id",'delete_einzelschicht'); if ($Rekursiv) { return false; } else { // Pruefen ob noch Helfer auf der Schicht eingetragen sind - $db_erg = $stmts['check_einzelschicht']->execute(["id" => $SchichtID ]); + $db_erg = $db->execute(__METHOD__,["id" => $SchichtID ],'check_einzelschicht'); - if ($stmts['check_einzelschicht']->errorCode() != 1){ - echo "Fehler Change Dienst"; - die('Ungueltige Abfrage: ' . $stmts['check_einzelschicht']->errorInfo()[2]); - } + $db->onErrorDie(__METHOD__,'check_einzelschicht'); - if (!$stmts['check_einzelschicht']->fetch()) { + if (!$db->fetch(__METHOD__,'check_einzelschicht')) { // Eintrag löschen - $db_erg = $stmts['delete_einzelschicht']->execute(["id" => $SchichtID ]); - if ($stmts['delete_einzelschicht']->errorCode() != 1) { - echo "Fehler Change Dienst"; - die('Ungueltige Abfrage: ' . $stmts['delete_einzelschicht']->errorInfo()[2]); - } + $db_erg = $db->execute(__METHOD__,["id" => $SchichtID ],'delete_einzelschicht'); + $db->onErrorDie(__METHOD__,'delete_einzelschicht'); return true; } else { return false; @@ -881,55 +681,31 @@ function DeleteSchicht($pdo, $SchichtID, $Rekursiv) } -function AlleHelferSchichtenUebersicht($pdo) +function AlleHelferSchichtenUebersicht() { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select Helfer.HelferID as AliasHelferID,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was"); - $stmt_prepared = true; - } - $db_erg = $stmt->execute(); - - if ($stmt->errorCode() != 1){ - echo "AlleHelferSchichtenUebersicht ungueltige Abfrage"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select Helfer.HelferID as AliasHelferID,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was"); + $db_erg = $db->execute(__METHOD__); + $db->onErrorDie(__METHOD__); return $db_erg; } -function DatenbankAufDeutsch($pdo) +function DatenbankAufDeutsch() { - static $sql = "SET lc_time_names = 'de_DE'"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare($sql); - $stmt_prepared = true; - } - $db_erg = $stmt->execute(); - - if ($stmt->errorCode() != 1){ - echo "ungueltiges umstellen auf Deutsch"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SET lc_time_names = 'de_DE'"); + $db_erg = $db->execute(__METHOD__); + $db->onErrorDie(__METHOD__); } -function HelferLevel($db_link) +function HelferLevel() { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select HelferLevel,HelferLevelBeschreibung from HelferLevel"); - $stmt_prepared = true; - } - $db_erg = $stmt->execute(); - if($stmt->errorCode() != 1){ - echo "Konnte HelferLevel nicht abfragen"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select HelferLevel,HelferLevelBeschreibung from HelferLevel"); + $db_erg = $stmt->execute(__METHOD__); + $db->onErrorDie(__METHOD__); return $db_erg; } // TODO: als Array zurueckgeben (CreateHelfer anpassen) @@ -952,7 +728,7 @@ function HelferLevel($db_link) // return $results; //} - +//FIXME function DebugAusgabeDbErgebnis($db_erg) { // Ausgabe auf Browser Console