diff --git a/html/SQL.php b/html/SQL.php
index 44b7cde..eb4d0bd 100644
--- a/html/SQL.php
+++ b/html/SQL.php
@@ -5,107 +5,116 @@ require_once 'konfiguration.php';
function ConnectDB()
{
- $db_link = mysqli_connect(
- MYSQL_HOST,
+ $datasourcename = "mysql:host=" . MYSQL_HOST . ";dbname=". MYSQL_DATENBANK . ";charset=utf8mb4";
+ $pdo = new PDO(
+ $datasourcename,
MYSQL_BENUTZER,
- MYSQL_KENNWORT,
- MYSQL_DATENBANK
+ MYSQL_KENNWORT
);
- return $db_link;
+ $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+ return $pdo;
}
-function CreateHelfer($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1)
+function CreateHelfer($pdo, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1)
{
- $HelferName = mysqli_real_escape_string($db_link, $HelferName);
- $HelferEmail = mysqli_real_escape_string($db_link, $HelferEmail);
- $HelferHandy = mysqli_real_escape_string($db_link, $HelferHandy);
- // level: Teilnehmer/Dauerhelfer/(Teamleiter)
- $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel);
-
- //$HelferName=mysqli_real_escape($db_link,$HelferName);
- $HelferPasswort = "€" . $HelferPasswort . "ß";
- //echo "".$HelferPasswort."";
- $PasswortHash = password_hash($HelferPasswort, PASSWORD_DEFAULT);
-
-
// Neuen Helfer anlegen
- $sql = "INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel) VALUES ('$HelferName','$HelferEmail','$HelferHandy',1,'',0,'$PasswortHash','$HelferLevel')";
- $db_erg = mysqli_query($db_link, $sql);
+ $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;
+ if(!$stmt) $stmt = $pdo->prepare($sql);
+ $db_erg = $stmt->execute([
+ "name" => $HelferName,
+ "email" => $HelferEmail,
+ "handy" => $HelferHandy,
+ "status" => 1,
+ "bildfile" => '',
+ "doreport" => 0,
+ "passwort" => $PasswortHash,
+ "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($db_link, $Email)
+function HelferIstVorhanden($pdo, $Email)
{
- $Email = mysqli_real_escape_string($db_link, $Email);
- $sql = "SELECT count(HelferID) as Anzahl FROM Helfer Where Email = '" . $Email . "'";
- $db_erg = mysqli_query($db_link, $sql);
- $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);
+ static $sql = "SELECT count(HelferID) AS Anzahl FROM Helfer WHERE Email = :email";
+ static $stmt = false;
+ if(!$stmt) $stmt = $pdo->prepare($sql);
+ $stmt->execute(["email" => $Email]);
+ // TODO Test, that this still works
+ $zeile = $stmt->fetchAll();
return $zeile['Anzahl'];
}
//TODO: pruefen, ob Helfer bereits eingeloggt
-function HelferLogin($db_link, $HelferEmail, $HelferPasswort, $HelferStatus)
+function HelferLogin($pdo, $HelferEmail, $HelferPasswort, $HelferStatus)
{
- $HelferEmail = mysqli_real_escape_string($db_link, $HelferEmail);
- $HelferStatus = mysqli_real_escape_string($db_link, $HelferStatus);
-
//echo "Test
";
// Helfer Suchen
- $sql = "Select HelferID,Admin,Name,Passwort,HelferLevel From Helfer Where Email='" . $HelferEmail . "'";
- //echo $sql;
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ static $sql = "SELECT HelferID,Admin,Name,Passwort,HelferLevel FROM Helfer WHERE Email=:email";
+ static $stmt = false;
+ if(!$stmt) $stmt = $pdo->prepare($sql);
+ $db_erg = $stmt->execute(["email" => $HelferEmail]);
+ if ($stmt->errorCode() != 1) {
echo "Login ungueltige Abfrage";
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
- while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
+ while ($zeile = $stmt->fetchAll()) {
$HelferPasswort = "€" . $HelferPasswort . "ß";
//echo "".$HelferPasswort."
";
//echo "".$zeile['Passwort']."
";
if (password_verify($HelferPasswort, $zeile['Passwort'])) {
$_SESSION["HelferID"] = $zeile['HelferID'];
$_SESSION["HelferName"] = $zeile['Name'];
- //TODO: das sollte nur gesetzt werden, wenn der Helfer Admin ist
- $_SESSION["AdminID"] = $zeile['HelferID'];
- $_SESSION["AdminStatus"] = $zeile['Admin'];
- $_SESSION["HelferLevel"] = $zeile['HelferLevel'];
- return 1;
+ //TODO: das sollte nur gesetzt werden, wenn der Helfer Admin ist
+ $_SESSION["AdminID"] = $zeile['HelferID'];
+ $_SESSION["AdminStatus"] = $zeile['Admin'];
+ $_SESSION["HelferLevel"] = $zeile['HelferLevel'];
+ return 1;
} else {
echo "Falsches Passwort
";
- return 0;
+ return 0;
}
}
}
// Liste der Helfer fuer Admin-Seite
//TODO: HelferLevel
-function HelferListe($db_link)
+function HelferListe($pdo)
{
- $sql = "SELECT HelferID,Name FROM Helfer";
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ static $sql = "SELECT HelferID,Name FROM Helfer";
+ static $stmt = false;
+ if(!$stmt) $stmt = $pdo->prepare($sql);
+ $db_erg = $stmt->execute();
+ if ($stmt->errorCode() != 1) {
echo "Helferliste ungueltige Abfrage";
- die('Unueltige Abfrage: ' . mysqli_error($db_link));
+ die('Unueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
return $db_erg;
}
-function Helferdaten($db_link, $HelferID)
+function Helferdaten($pdo, $HelferID)
{
- $HelferID = mysqli_real_escape_string($db_link, $HelferID);
+ static $sql = "SELECT * FROM Helfer Where HelferID = :helferid";
+ static $stmt = false;
+ if(!$stmt) $stmt = $pdo->prepare($sql);
+ $db_erg = $stmt->execute(["helferid" => $HelferID]);
- $sql = "SELECT * FROM Helfer Where HelferID =" . $HelferID;
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ if ($stmt->errorCode() != 1) {
echo "Helferdaten ungueltige Abfrage
\n";
echo "sql:$sql
\n";
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
return $db_erg;
@@ -113,39 +122,65 @@ function Helferdaten($db_link, $HelferID)
-function HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0)
+function HelferdatenAendern($pdo, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0)
{
- $HelferID = mysqli_real_escape_string($db_link, $HelferID);
- $HelferName = mysqli_real_escape_string($db_link, $HelferName);
- $HelferEmail = mysqli_real_escape_string($db_link, $HelferEmail);
- $HelferHandy = mysqli_real_escape_string($db_link, $HelferHandy);
+ 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;
+ }
if ($HelferNewPasswort == "") {
//$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy' ".($HelferIsAdmin!=-1)?',Admin='$HelferIsAdmin.':'." Where HelferId=".$HelferID;
if ($HelferIsAdmin == -1) {
- $sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy' Where HelferId=" . $HelferID;
+ $db_erg = $stmts['password_empty']->execute([
+ "name" => $HelferName,
+ "email" => $HelferEmail,
+ "handy" => $HelferHandy,
+ "id" => $HelferID
+ ]);
} else {
- $sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',Admin=$HelferIsAdmin Where HelferId=" . $HelferID;
+ $db_erg = $stmts['password_empty_admin']->execute([
+ "name" => $HelferName,
+ "email" => $HelferEmail,
+ "handy" => $HelferHandy,
+ "admin" => $HelferIsAdmin,
+ "id" => $HelferID
+ ]);
}
- echo $sql;
- $db_erg = mysqli_query($db_link, $sql);
echo "
Helferdaten geändert";
if ($AdminID != 0) {
- error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Admin: $HelferIsAdmin\n", 3, LOGFILE);
+ error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Admin: $HelferIsAdmin\n", 3, LOGFILE);
} else {
- error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Admin: $HelferIsAdmin\n", 3, LOGFILE);
+ error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Admin: $HelferIsAdmin\n", 3, LOGFILE);
}
} else {
$HelferNewPasswort = "€" . $HelferNewPasswort . "ß";
$PasswortHash = password_hash($HelferNewPasswort, PASSWORD_DEFAULT);
if ($HelferIsAdmin == -1) {
- $sql = "UPDATE Helfer SET Name='" . $HelferName . "',Email='" . $HelferEmail . "',Handy='" . $HelferHandy . "',Passwort='" . $PasswortHash . "' Where HelferId=" . $HelferID;
+ $db_erg = $stmts['password_given']->execute([
+ "name" => $HelferName,
+ "email" => $HelferEmail,
+ "handy" => $HelferHandy,
+ "passwort" => $PasswortHash,
+ "id" => $HelferID
+ ]);
} else {
- $sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',Passwort='$PasswortHash',Admin=$HelferIsAdmin Where HelferId=" . $HelferID;
+ $db_erg = $stmts['password_given_admin']->execute([
+ "name" => $HelferName,
+ "email" => $HelferEmail,
+ "handy" => $HelferHandy,
+ "passwort" => $PasswortHash,
+ "admin" => $HelferIsAdmin,
+ "id" => $HelferID
+ ]);
}
//echo $sql;
- $db_erg = mysqli_query($db_link, $sql);
echo "Passwort geändert";
if ($AdminID != 0) {
error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Passwort: neu gesetzt\n", 3, LOGFILE);
@@ -154,39 +189,44 @@ function HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $
}
}
- if (! $db_erg) {
- echo "HelferdatenAendern ungueltiges Statement";
- echo $sql;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ 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($db_link, $Sort, $HelferLevel = 1)
+function AlleSchichten($pdo, $Sort, $HelferLevel = 1)
{
-
- $Sort = mysqli_real_escape_string($db_link, $Sort);
+ 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;
+ }
if ($Sort == '1') {
- $sql = "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";
+ $db_erg = $stmts['sort_by_von']->execute(["helferlevel" => $HelferLevel]);
} else {
- $sql = "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";
+ $db_erg = $stmts['sort_by_was_von']->execute(["helferlevel" => $HelferLevel]);
}
- $db_erg = mysqli_query($db_link, $sql);
-
- if (! $db_erg) {
- echo "AlleSchichten ungueltige Abfrage";
- echo $Sort;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ foreach ($stmts as $stmt) {
+ if (!is_null($stmt->errorCode()) && ($stmt->errorCode() != 1) ) {
+ echo "AlleSchichten ungueltige Abfrage";
+ echo $Sort;
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
+ }
}
-
return $db_erg;
}
@@ -194,18 +234,21 @@ function AlleSchichtenCount($db_link, $HelferLevel = 1)
{
//$sql = "select SUM(Soll) As Anzahl from SchichtUebersicht where HelferLevel=$HelferLevel";
- $sql = "select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel";
-
-
- $db_erg = mysqli_query($db_link, $sql);
-
- if (! $db_erg) {
- echo "AlleSchichtenCount ungueltige Abfrage";
- echo $Sort;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ static $stmt = false;
+ if(!$stmt) {
+ $stmt = $pdo->prepare("select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel");
}
- $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);
+
+ $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();
return $zeile['Anzahl'];
}
@@ -213,61 +256,78 @@ function AlleSchichtenCount($db_link, $HelferLevel = 1)
function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1)
{
- $sql = "select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel";
-
-
- $db_erg = mysqli_query($db_link, $sql);
-
- if (! $db_erg) {
- echo "AlleSchichtenCount ungueltige Abfrage";
- echo $Sort;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ static $stmt = false;
+ if(!$stmt) {
+ $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");
}
- $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);
+
+ $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();
return $zeile['Anzahl'];
}
-function AlleSchichtenImZeitbereich($db_link, $Von, $Bis, $HelferLevel = 1)
+function AlleSchichtenImZeitbereich($pdo, $Von, $Bis, $HelferLevel = 1)
{
// SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden
- $Von = mysqli_real_escape_string($db_link, $Von);
- $Bis = mysqli_real_escape_string($db_link, $Bis);
- $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel);
- $sql_helferlevel = "and Dienst.HelferLevel=$HelferLevel";
+
+ 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;
+ }
+
if ($HelferLevel == -1) {
- $sql_helferlevel = "";
+ $db_erg = $stmts['helferlevel_not_set']->execute([
+ "von" => $Von,
+ "bis" => $Bis
+ ]);
+ }
+ else {
+ $db_erg = $stmts['helferlevel_set']->execute([
+ "von" => $Von,
+ "bis" => $Bis,
+ "helferlevel" => $HelferLevel
+ ]);
}
- $sql = "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 $sql_helferlevel order by Was,Von";
- error_log($sql);
- $db_erg = mysqli_query($db_link, $sql);
-
- if (! $db_erg) {
- echo "AlleSchichtenImZeitbereich ungueltige Abfrage
";
- echo $sql;
- die('
Ungueltige Abfrage: ' . mysqli_error($db_link));
+ 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]);
+ }
}
-
return $db_erg;
}
-function AlleSchichtenEinesHelfers($db_link, $HelferID)
+function AlleSchichtenEinesHelfers($pdo, $HelferID)
{
- $HelferID = mysqli_real_escape_string($db_link, $HelferID);
+ static $stmt = false;
+ if(!$stmt) {
+ $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");
+ }
- $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 . " order by Von";
- $db_erg = mysqli_query($db_link, $sql);
+ $db_erg = $stmt->execute(["helferid" => $HelferID]);
- if (! $db_erg) {
+ if ($stmt->errorCode() != 1){
echo "AlleSchichtenEinesHelfers ungueltige Abfrage";
echo $HelferID;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
@@ -313,7 +373,10 @@ function SchichtIdArrayEinesHelfers($db_link, $HelferID)
$HelferID = mysqli_real_escape_string($db_link, $HelferID);
// Array, um Zeilen mit von mir belegten Schichten in der Schichtuebersicht einfaerben zu koennenn
- $sql = "SELECT SchichtID FROM EinzelSchicht WHERE HelferID = $HelferID";
+ static $stmt = false;
+ if(!$stmt) {
+ $stmt = $pdo->prepare("SELECT SchichtID FROM EinzelSchicht WHERE HelferID = $HelferID");
+ }
//print_r($sql);
$db_erg = mysqli_query($db_link, $sql);
$schichtIDs = array();
@@ -326,40 +389,45 @@ function SchichtIdArrayEinesHelfers($db_link, $HelferID)
function AlleSchichtenEinesHelfersVonJetzt($db_link, $HelferID)
{
- $HelferID = mysqli_real_escape_string($db_link, $HelferID);
// TODO: fix GETDATE() array to string conversion
- $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>'" . GETDATE() . "' order by Von";
+ static $stmt = false;
+ if(!$stmt) {
+ $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");
+ }
//$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 = mysqli_query($db_link, $sql);
+ $db_erg = $stmt->execute([
+ "id" => $HelferID,
+ "bis" => GETDATE()
+ ]);
- if (! $db_erg) {
+ if($stmt->errorCode() != 1){
echo "AlleSchichtenEinesHelfers ungueltige Abfrage";
echo $HelferID;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
-
return $db_erg;
}
function SchichtenSummeEinesHelfers($db_link, $HelferID)
{
- $HelferID = mysqli_real_escape_string($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";
- $sql = "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;
+ static $stmt = false;
+ if(!$stmt) {
+ $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");
+ }
//echo $sql;
- $db_erg = mysqli_query($db_link, $sql);
+ $db_erg = $stmt->execute(["helferid" => $HelferID]);
- if (! $db_erg) {
+ if ($stmt->errorCode() != 1){
echo "SchichtenSummeEinesHelfers ungueltige Abfrage";
echo $HelferID;
- echo $sql;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ echo $stmt->queryString;
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
@@ -375,14 +443,17 @@ function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $A
$Aktion = mysqli_real_escape_string($db_link, $Aktion);
$AdminID = mysqli_real_escape_string($db_link, $AdminID);
- $sql = "SELECT Schicht.Von, Schicht.Bis, Dienst.Was, Helfer.Name
+ static $stmt = false;
+ if(!$stmt) {
+ $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)
- ";
+ ");
+ }
//error_log(date('Y-m-d H:i') . " " . $sql ."\n",3,LOGFILE);
$db_erg = mysqli_query($db_link, $sql);
@@ -407,69 +478,76 @@ function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $A
}
}
-function HelferSchichtZuweisen($db_link, $HelferID, $SchichtId, $AdminID = 0)
+function HelferSchichtZuweisen($pdo, $HelferID, $SchichtId, $AdminID = 0)
{
- $HelferID = mysqli_real_escape_string($db_link, $HelferID);
- $SchichtId = mysqli_real_escape_string($db_link, $SchichtId);
+ // Abfrage, ob bereits eine Einzelschicht in der selben Schicht vom Helfer existiert
+ static $stmts_prepared = false;
+ static $stmts = 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;
+ }
- // Abfrage, ob bereits eine Einzelschicht in der selben Schicht vom Helfer existiert
- $sql = "SELECT EinzelSchichtID from EinzelSchicht WHERE SchichtID='$SchichtId' and HelferID='$HelferID'";
+ $db_erg = $stmts['einzelschicht_exists']->execute([
+ "schichtid" => $SchichtId,
+ "helferid" => $HelferID
+ ]);
- $db_erg = mysqli_query($db_link, $sql);
-
- if (mysqli_num_rows($db_erg) > 0) {
+ if($stmt['einzelschicht_exists']->fetch()){
echo "HelferSchichtZuweisen: Schicht existiert bereits!";
return false;
}
// Helfer Schicht zuweisen
- $sql = 'INSERT INTO EinzelSchicht(SchichtID,HelferID) VALUES (\''
- . $SchichtId . '\',\''
- . $HelferID . '\')';
//echo '';
- $db_erg = mysqli_query($db_link, $sql);
+ $db_erg = $stmts['new_einzelschicht']->execute([
+ "schichtid" => $SchichtId,
+ "helferid" => $HelferID
+ ]);
- if (! $db_erg) {
+ if ($stmts['new_einzelschicht']->errorCode() != 1){
echo "HelferSchichtZuweisen ungueltige Abfrage";
echo $HelferID;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmts['new_einzelschicht']->errorInfo()[2]);
}
- LogSchichtEingabe($db_link, $HelferID, $SchichtId, -1, "eingetragen", $AdminID);
+ LogSchichtEingabe($db_link, $HelferID, $SchichtId, -1, "eingetragen", $AdminID);
return $db_erg;
}
-function HelferVonSchichtLoeschen($db_link, $HelferID, $EinzelSchichtID, $AdminID = 0)
+function HelferVonSchichtLoeschen($pdo, $HelferID, $EinzelSchichtID, $AdminID = 0)
{
- $HelferID = mysqli_real_escape_string($db_link, $HelferID);
- $SchichtId = mysqli_real_escape_string($db_link, $SchichtId);
-
-
// Log vor Löschen, damit Einzelschicht abgefragt werden kann
LogSchichtEingabe($db_link, $HelferID, -1, $EinzelSchichtID, "entfernt", $AdminID);
// Lösche Einzelschicht
- $sql = "Delete From EinzelSchicht Where EinzelSchichtID =" . $EinzelSchichtID;
- //echo $sql;
- $db_erg = mysqli_query($db_link, $sql);
+ static $stmt = false;
+ if(!$stmt) {
+ $stmt = $pdo->prepare("Delete From EinzelSchicht Where EinzelSchichtID = :id");
+ }
+ //echo $sql;
+ $db_erg = $stmt->execute(["id" => $EinzelSchichtID]);
return $db_erg;
}
-function HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID, $AdminID = 0)
+function HelferVonSchichtLoeschen_SchichtID($pdo, $HelferID, $SchichtID, $AdminID = 0)
{
- $HelferID = mysqli_real_escape_string($db_link, $HelferID);
- $SchichtId = mysqli_real_escape_string($db_link, $SchichtId);
-
-
// Log vor Löschen, damit Einzelschicht abgefragt werden kann
LogSchichtEingabe($db_link, $HelferID, $SchichtID, -1, "entfernt", $AdminID);
// Lösche Einzelschicht
- $sql = "Delete From EinzelSchicht Where SchichtID = $SchichtID and HelferID = $HelferID limit 1;";
+ static $stmt = false;
+ if(!$stmt) {
+ $stmt = $pdo->prepare("Delete From EinzelSchicht Where SchichtID = :schichtid and HelferID = :helferid limit 1;");
+ }
//echo $sql;
- $db_erg = mysqli_query($db_link, $sql);
+ $db_erg = $stmt->execute([
+ "schichtid" => $SchichtID,
+ "helferid" => $HelferID
+ ]);
return $db_erg;
}
@@ -478,39 +556,40 @@ function HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID, $Ad
-function DetailSchicht($db_link, $InfoSchichtID)
+function DetailSchicht($pdo, $InfoSchichtID)
{
- $InfoSchichtID = mysqli_real_escape_string($db_link, $InfoSchichtID);
-
-
- $sql = "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=" . $InfoSchichtID;
-
- //echo $sql;
- $db_erg = mysqli_query($db_link, $sql);
-
- if (! $db_erg) {
- echo "Details ungueltige Abfrage ";
- echo $InfoSchichtID;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ static $stmt = false;
+ if(!$stmt) {
+ $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");
}
- $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);
+ //echo $sql;
+ $db_erg = $stmt->execute(["id" => $InfoSchichtID]);
+
+ if ($stmt->errorCode() != 1){
+ echo "Details ungueltige Abfrage ";
+ echo $InfoSchichtID;
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
+ }
+
+ $zeile = $stmt->fetchAll();
return $zeile;
}
-function BeteiligteHelfer($db_link, $InfoSchichtID)
+function BeteiligteHelfer($pdo, $InfoSchichtID)
{
- $InfoSchichtID = mysqli_real_escape_string($db_link, $InfoSchichtID);
+ static $stmt = false;
+ if(!$stmt) {
+ $stmt = $pdo->prepare("select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=:id");
+ }
- $sql = "select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=" . $InfoSchichtID;
+ $db_erg = $stmt->execute(["id" => $InfoSchichtID]);
- $db_erg = mysqli_query($db_link, $sql);
-
- if (! $db_erg) {
+ if ($stmt->errorCode() != 1){
echo "Details ungueltige Abfrage ";
echo $InfoSchichtID;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
return $db_erg;
@@ -518,100 +597,114 @@ function BeteiligteHelfer($db_link, $InfoSchichtID)
function GetDienste($db_link)
{
- $sql = "SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was";
+ static $stmt = false;
+ if(!$stmt) {
+ $stmt = $pdo->prepare("SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was");
+ }
$db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ if ($stmt->errorCode() != 1){
echo "GetDienste ungueltige Abfrage";
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
return $db_erg;
}
-function GetDiensteChilds($db_link, $DienstID)
+function GetDiensteChilds($pdo, $DienstID)
{
- $DienstID = mysqli_real_escape_string($db_link, $DienstID);
+ static $stmt = false;
+ if(!$stmt) {
+ $stmt = $pdo->prepare("SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID=:id order by Was");
+ }
- $sql = "SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID='" . $DienstID . "' order by Was";
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ $db_erg = $stmt->execute(["id" => $DienstID]);
+
+ if ($stmt->errorCode() != 1){
echo "GetDienste ungueltige Abfrage";
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
return $db_erg;
}
-function ChangeDienst($db_link, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel)
+function ChangeDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel)
{
- $DienstID = mysqli_real_escape_string($db_link, $DienstID);
- $Was = mysqli_real_escape_string($db_link, $Was);
- $Wo = mysqli_real_escape_string($db_link, $Wo);
- $Info = mysqli_real_escape_string($db_link, $Info);
- $Leiter = mysqli_real_escape_string($db_link, $Leiter);
- $Gruppe = mysqli_real_escape_string($db_link, $Gruppe);
- $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel); // int (1,2) Teilnehmer oder Dauerhelfer
+ static $stmt = false;
+ if(!$stmt) {
+ $stmt = $pdo->prepare("UPDATE Dienst SET Was=:was, Wo=:wo, Info=:info, Leiter=:leiter, ElternDienstID=:elterndienstid where DienstID=:dienstid");
+ }
- $sql = "UPDATE Dienst SET Was='" . $Was . "', Wo='" . $Wo . "', Info='" . $Info . "', Leiter=" . $Leiter . ", ElternDienstID=" . $Gruppe . " where DienstID=" . $DienstID;
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ $db_erg = $stmt->execute([
+ "was" => $Was,
+ "wo" => $Wo,
+ "info" => $Info,
+ "leiter" => $Leiter,
+ "elterndienstid" => $Gruppe,
+ "dienstid" => $DienstID
+ ]);
+
+ if ($stmt->errorCode() != 1){
echo "Fehler Change Dienst";
echo $sql;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
}
-function NewDienst($db_link, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel)
+function NewDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel)
{
+ static $stmt = false;
+ if(!$stmt) {
+ $stmt = $pdo->prepare("INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values (:was,:wo,:info,:leiter,:elterndienstid,:helferlevel)");
+ }
- $DienstID = mysqli_real_escape_string($db_link, $DienstID);
- $Was = mysqli_real_escape_string($db_link, $Was); //Name des Dienstes
- $Wo = mysqli_real_escape_string($db_link, $Wo); //Ort
- $Info = mysqli_real_escape_string($db_link, $Info); //vollstaendige Beschreibung
- $Leiter = mysqli_real_escape_string($db_link, $Leiter); // int HelferID des Leiters
- $Gruppe = mysqli_real_escape_string($db_link, $Gruppe); // ??
- $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel); // int (1,2) Teilnehmer oder Dauerhelfer
-
-
- $sql = "INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values ('$Was','$Wo','$Info',$Leiter,$Gruppe,$HelferLevel)";
+ $db_erg = $stmt->execute([
+ "was" => $Was,
+ "wo" => $Wo,
+ "info" => $Info,
+ "leiter" => $Leiter,
+ "elterndienstid" => $Gruppe,
+ "helferlevel" => $HelferLevel
+ ]);
$db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ if ($stmt->errorCode() != 1){
echo "Fehler New Dienst";
// echo $sql;
- $err = mysqli_error($db_link);
+ $err = $stmt->errorInfo()[2];
die('Ungueltige Abfrage: ' . $err);
- error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit Anfrage $sql Grund: $err \n", 3, LOGFILE);
+ error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit Anfrage $sql Grund: $err \n", 3, LOGFILE);
} 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);
+ 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)
{
- $DienstID = mysqli_real_escape_string($db_link, $DienstID);
-
-
if ($Rekursiv) {
return false;
} else {
// Pruefen ob noch Schichten eingetragen sind
- $sql = "SELECT SchichtID FROM Schicht where DienstID=" . $DienstID;
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ 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_erg = $stmts['check_dienst']->execute(['id' => $DienstID]);
+
+ if ($stmts['check_dienst']->errorCode() != 1){
echo "Fehler DeleteDienst";
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmts['check_dienst']->errorInfo()[2]);
}
- if (mysqli_num_rows($db_erg) == 0) {
+ if ($stmts['check_dienst']->fetch()) {
// Eintrag löschen
- $sql = "DELETE FROM Dienst where DienstID=" . $DienstID;
-
- echo $sql;
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ $db_erg = $stmts['delete_dienst']->execute(['id' => $DienstID]);
+ if ($stmts['delete_dienst']->errorCode() != 1){
echo "Fehler DeleteDienst";
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmts['delete_dienst']->errorInfo()[2]);
}
return true;
} else {
@@ -622,46 +715,44 @@ function DeleteDienst($db_link, $DienstID, $Rekursiv)
function GetSchichtenEinesDienstes($db_link, $DienstID)
{
- $DienstID = mysqli_real_escape_string($db_link, $DienstID);
-
//$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon FROM Schicht where DienstID=".$DienstID;
- $sql = "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=" . $DienstID;
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ static $stmt = false;
+ if(!$stmt) {
+ $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");
+ }
+ $db_erg = $stmt->execute(['id' => $DienstID]);
+ if ($stmt->errorCode() != 1){
echo "GetSchichtenEinesDienstes ungueltige Abfrage";
echo $sql;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
return $db_erg;
}
function ChangeSchicht($db_link, $SchichtID, $Von, $Bis, $Soll)
{
- $SchichtID = mysqli_real_escape_string($db_link, $SchichtID);
- $Von = mysqli_real_escape_string($db_link, $Von);
- $Bis = mysqli_real_escape_string($db_link, $Bis);
- $Soll = mysqli_real_escape_string($db_link, $Soll);
+ static $stmt = false;
+ if(!$stmt) {
+ $stmt = $pdo->prepare("UPDATE Schicht SET Von=:von, Bis=:bis, Soll=:soll where SchichtID=:id");
+ }
+ $db_erg = $stmt->execute([
+ 'von' => $Von,
+ 'bis' => $Bis,
+ 'soll' => $Soll,
+ 'id' => $SchichtID
+ ]);
- $sql = "UPDATE Schicht SET Von='" . $Von . "', Bis='" . $Bis . "', Soll='" . $Soll . "' where SchichtID=" . $SchichtID;
-
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ if ($stmt->errorCode() != 1){
echo "Fehler ChangeSchicht";
- echo $sql;
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
}
function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll)
{
- $DienstID = mysqli_real_escape_string($db_link, $DienstID);
- $Von = mysqli_real_escape_string($db_link, $Von);
- $Bis = mysqli_real_escape_string($db_link, $Bis);
- $Soll = mysqli_real_escape_string($db_link, $Soll);
-
/*
if(validateDate($Von))
{
@@ -674,14 +765,23 @@ function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll)
return Null;
}
*/
- $sql = "INSERT INTO Schicht (DienstID, Von, Bis, Soll) values ('" . $DienstID . "','" . $Von . "','" . $Bis . "'," . $Soll . ")";
+ static $stmt = false;
+ if(!$stmt) {
+ $stmt = $pdo->prepare("INSERT INTO Schicht (DienstID, Von, Bis, Soll) values (:id,:von,:bis,:soll)");
+ }
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ $db_erg = $stmt->execute([
+ 'id' => $DienstID,
+ 'von' => $Von,
+ 'bis' => $Bis,
+ 'soll' => $Soll
+ ]);
+
+ if ($stmt->errorCode() != 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 = mysqli_error($db_link);
+ $err = $stmt->errorInfo()[2];
die('Ungueltige Abfrage: ' . $err);
} else {
//TODO: DienstID aufloesen
@@ -689,30 +789,33 @@ function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll)
}
}
-function DeleteSchicht($db_link, $SchichtID, $Rekursiv)
+function DeleteSchicht($pdo, $SchichtID, $Rekursiv)
{
- $SchichtID = mysqli_real_escape_string($db_link, $SchichtID);
+ 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;
+ }
if ($Rekursiv) {
return false;
} else {
// Pruefen ob noch Helfer auf der Schicht eingetragen sind
- $sql = "SELECT Name FROM EinzelSchicht,Helfer where SchichtID=" . $SchichtID . " and Helfer.HelferID=EinzelSchicht.HelferID";
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ $db_erg = $stmts['check_einzelschicht']->execute(["id" => $SchichtID ]);
+
+ if ($stmts['check_einzelschicht']->errorCode() != 1){
echo "Fehler Change Dienst";
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmts['check_einzelschicht']->errorInfo()[2]);
}
- if (mysqli_num_rows($db_erg) == 0) {
+ if (!$stmts['check_einzelschicht']->fetch()) {
// Eintrag löschen
- $sql = "DELETE FROM Schicht where SchichtID=" . $SchichtID;
-
- echo $sql;
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ $db_erg = $stmts['delete_einzelschicht']->execute(["id" => $SchichtID ]);
+ if ($stmts['delete_einzelschicht']->errorCode() != 1) {
echo "Fehler Change Dienst";
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmts['delete_einzelschicht']->errorInfo()[2]);
}
return true;
} else {
@@ -722,37 +825,46 @@ function DeleteSchicht($db_link, $SchichtID, $Rekursiv)
}
-function AlleHelferSchichtenUebersicht($db_link)
+function AlleHelferSchichtenUebersicht($pdo)
{
- $sql = "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 = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ static $stmt = false;
+ if(!$stmt) {
+ $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");
+ }
+ $db_erg = $stmt->execute();
+
+ if ($stmt->errorCode() != 1){
echo "AlleHelferSchichtenUebersicht ungueltige Abfrage";
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
return $db_erg;
}
-function DatenbankAufDeutsch($db_link)
+function DatenbankAufDeutsch($pdo)
{
- $sql = "SET lc_time_names = 'de_DE'";
- $db_erg = mysqli_query($db_link, $sql);
+ static $sql = "SET lc_time_names = 'de_DE'";
+ static $stmt = false;
+ if(!$stmt) $stmt = $pdo->prepare($sql);
+ $db_erg = $stmt->execute();
- if (! $db_erg) {
+ if ($stmt->errorCode() != 1){
echo "ungueltiges umstellen auf Deutsch";
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
}
function HelferLevel($db_link)
{
- $sql = "select HelferLevel,HelferLevelBeschreibung from HelferLevel";
- $db_erg = mysqli_query($db_link, $sql);
- if (! $db_erg) {
+ static $stmt = false;
+ if(!$stmt) {
+ $stmt = $pdo->prepare("select HelferLevel,HelferLevelBeschreibung from HelferLevel");
+ }
+ $db_erg = $stmt->execute();
+ if($stmt->errorCode() != 1){
echo "Konnte HelferLevel nicht abfragen";
- die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]);
}
return $db_erg;
}
diff --git a/html/Setup.php b/html/Setup.php
new file mode 100644
index 0000000..b9ecfd0
--- /dev/null
+++ b/html/Setup.php
@@ -0,0 +1,628 @@
+
+
+
+
+
+HelferDB Setup Wizard
+
+
+
+
+
+
HelferDB Setup Wizard
+
+
Diese Seite führt durch die Einrichtung der Helferdatenbank.
+
+
Schritt 1: Logindaten für Datenbank eingeben
+
Bitte hier zunächst die Logindaten für die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte können unverändert bleiben.
+
+
+
+
Schritt 2: Datenbank einrichten
+
Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben:
+
sudo apt-get install mariadb
+
+
+
+
diff --git a/html/Setup.rst b/html/Setup.rst
new file mode 100644
index 0000000..7a7cdd5
--- /dev/null
+++ b/html/Setup.rst
@@ -0,0 +1,54 @@
+
+HelferDB Setup Wizard
+---------------------
+
+Diese Seite führt durch die Einrichtung der Helferdatenbank.
+
+.. raw:: html
+
+
+
+
+Schritt 1: Logindaten für Datenbank eingeben
+............................................
+
+Bitte hier zunächst die Logindaten für die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte können unverändert bleiben.
+
+.. raw:: html
+
+
+
+
+
+
+.. raw:: html
+
+
+
+
+Schritt 2: Datenbank einrichten
+...............................
+
+Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben:
+
+.. code:: bash
+
+ sudo apt-get install mariadb
+
+
+.. raw:: html
+
+
diff --git a/html/index.php b/html/index.php
index 0c96efd..8981092 100644
--- a/html/index.php
+++ b/html/index.php
@@ -16,14 +16,9 @@ SESSION_START();
require_once 'konfiguration.php';
require 'SQL.php';
-$db_link = mysqli_connect(
- MYSQL_HOST,
- MYSQL_BENUTZER,
- MYSQL_KENNWORT,
- MYSQL_DATENBANK
-);
+$pdo = ConnectDB();
-DatenbankAufDeutsch($db_link);
+DatenbankAufDeutsch($pdo);
require '_login.php';
diff --git a/html/konfiguration.php b/html/konfiguration.php
index 4c967da..fcb2ca4 100644
--- a/html/konfiguration.php
+++ b/html/konfiguration.php
@@ -1,8 +1,8 @@
"SET NAMES 'utf8'",
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
);