Prepared Statement
Prepared Statements sind mit
new mysqli etwas anders umzusetzen wie mit pdo
new mysqli etwas anders umzusetzen wie mit pdo
Hier ein paar ganz einfache Beispiele:
<?php
$sql ="SELECT spalte1, spalte2, datum FROM a_table";
$stmt=$msql->prepare($sql);
$stmt=$msql->prepare($sql);
?>
$sql =...prepare($sql); ist das gleiche wie:
<?php
$stmt=$msql->prepare("SELECT spalte1, spalte2, datum FROM a_table");
?>
SELECT
Abfrage mit überprüfung
Die Prüfung (wenn gewollt) immer nach der Ausgabe und vor Objekt schließen einfügen,
gilt für new mysqli und pdo
Die Prüfung (wenn gewollt) immer nach der Ausgabe und vor Objekt schließen einfügen,
gilt für new mysqli und pdo
<?php
Es wird die entsprechende Datenbank Verbindung benötigt
Datenbank abfrage
Vorbereiten
$sql ="SELECT spalte1, spalte2, datum FROM a_table";
$stmt=$msql->prepare($sql);
$stmt=$msql->prepare($sql);
Ausführen
$stmt->execute();
Daten in Variable ($result) für ausgabe sammeln
$result = $stmt->get_result();
Daten ausgabe
while ($row = $result->fetch_assoc())
{
{
Die Daten
$datum = new DateTime($row['datum']);
echo $row['spalte1'];
echo $row['spalte2'];
echo $datum->format('d.m.Y - H:i:s');
echo $row['spalte1'];
echo $row['spalte2'];
echo $datum->format('d.m.Y - H:i:s');
}
$sql ="SELECT spalte1, spalte2, datum FROM a_table";
$stmt=$pdo->prepare($sql);
$stmt=$pdo->prepare($sql);
Ausführen
$stmt->execute();
Daten ausgabe
while ($row = $stmt->fetch())
{
{
Die Daten
$datum = new DateTime($row['datum']);
echo $row['spalte1'];
echo $row['spalte2'];
echo $datum->format('d.m.Y - H:i:s');
echo $row['spalte1'];
echo $row['spalte2'];
echo $datum->format('d.m.Y - H:i:s');
}
Datenbank auf Daten prüfen einfügen
Objekt schließen einfügen
Verbindung beenden einfügen
?>
INSERT
<?php
Es wird die entsprechende Datenbank Verbindung benötigt
Es wird ein Formular benötigt.
Formular muß erstellt werden!
$beitrag1 = isset($_POST['beitrag1']) ? $_POST['beitrag1'] : ''; // tested
$beitrag2 = isset($_POST['beitrag2']) ? $_POST['beitrag2'] : ''; // tested
$beitrag2 = isset($_POST['beitrag2']) ? $_POST['beitrag2'] : ''; // tested
// tested Symbolisch für geprüfte Daten aus einem Formular
In Datenbank eintragen
Vorbereiten
$sqli = "INSERT INTO a_table (spalte1, spalte2) VALUES (?, ?)";
$stmt=$msql->prepare($sqli);
$spalte1 = $msql->real_escape_string($beitrag1);
$spalte2 = $msql->real_escape_string($beitrag2);
$stmt->bind_param('ss', $spalte1, $spalte2);
$stmt=$msql->prepare($sqli);
$spalte1 = $msql->real_escape_string($beitrag1);
$spalte2 = $msql->real_escape_string($beitrag2);
$stmt->bind_param('ss', $spalte1, $spalte2);
Ausführen
if ($stmt->execute())
Prüfen
{
echo "Insert erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
echo "Insert erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
$sqli = "INSERT INTO a_table (spalte1, spalte2) VALUES(?, ?)";
$stmt=$pdo->prepare($sqli);
$stmt=$pdo->prepare($sqli);
Audführen
if ($stmt->execute(array($beitrag1, $beitrag2)))
Prüfen
{
echo "Insert erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
echo "Insert erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
Objekt schließen einfügen
Verbindung beenden einfügen
?>
UPDATE
Beim updaten mit Anonymus(?) sollte die reihenfolge der Daten eingehalten werden.
UPDATE ... SET spalte1=?, spalte2=? ...
sollte die gleiche reihenfolge wie die Spalten der Tabelle (a_table) haben!
WHERE id=? ist mit Anonymus(?) der letzte gebundene parameter.
UPDATE ... SET spalte1=?, spalte2=? ...
sollte die gleiche reihenfolge wie die Spalten der Tabelle (a_table) haben!
WHERE id=? ist mit Anonymus(?) der letzte gebundene parameter.
Es wird eine Auflistung oder ein Formular benötigt.
Auflistung oder Formular muß erstellt werden
<?php
$sid = isset($_GET['id']) ? $_GET['id'] : ''; // tested
oder
$sid = isset($_POST['id']) ? $_POST['id'] : ''; // tested
oder
$sid = isset($_POST['id']) ? $_POST['id'] : ''; // tested
?>
// tested Symbolisch für geprüfte Daten aus einer Auflistung oder einem Formular
<?php
$beitrag1 = isset($_POST['beitrag1']) ? $_POST['beitrag1'] : ''; // tested
$beitrag2 = isset($_POST['beitrag2']) ? $_POST['beitrag2'] : ''; // tested
$beitrag2 = isset($_POST['beitrag2']) ? $_POST['beitrag2'] : ''; // tested
?>
// tested Symbolisch für geprüfte Daten aus einer Auflistung oder einem Formular
Es wird die entsprechende Datenbank Verbindung benötigt
Datenbank Eintrag ändern
Vorbereiten
<?php
$sqlu = "UPDATE a_table SET spalte1=?, spalte2=? WHERE id=?";
$stmt=$msql->prepare($sqlu);
$spalte1 = $msql->real_escape_string($beitrag1);
$spalte2 = $msql->real_escape_string($beitrag2);
$stmt->bind_param('ssi', $spalte1, $spalte2, $sid);
$stmt=$msql->prepare($sqlu);
$spalte1 = $msql->real_escape_string($beitrag1);
$spalte2 = $msql->real_escape_string($beitrag2);
$stmt->bind_param('ssi', $spalte1, $spalte2, $sid);
Ausführen
if ($stmt->execute())
Prüfen
{
echo "Update erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
echo "Update erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
<?php
$sqlu = "UPDATE a_table SET spalte1=?, spalte2=? WHERE id=?";
$stmt=$pdo->prepare($sqlu);
$stmt=$pdo->prepare($sqlu);
Ausführen
if ($stmt->execute(array($beitrag1, $beitrag2, $sid)))
Prüfen
{
echo "Update erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
echo "Update erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
Objekt schließen einfügen
Verbindung beenden einfügen
?>
DELETE
Es wird eine Auflistung oder ein Formular benötigt.
Auflistung oder Formular muß erstellt werden
<?php
$sid = isset($_GET['id']) ? $_GET['id'] : ''; // tested
oder
$sid = isset($_POST['id']) ? $_POST['id'] : ''; // tested
oder
$sid = isset($_POST['id']) ? $_POST['id'] : ''; // tested
?>
// tested Symbolisch für geprüfte Daten aus einer Auflistung oder einem Formular
Es wird die entsprechende Datenbank Verbindung benötigt
Datenbank Eintrag löschen
Vorbereiten
<?php
$sqld = "DELETE FROM a_table WHERE id=?";
$stmt=$msql->prepare($sqld);
$stmt->bind_param('i', $sid);
$stmt=$msql->prepare($sqld);
$stmt->bind_param('i', $sid);
Ausführen
if ($stmt->execute())
Prüfen
{
echo "Delete erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
echo "Delete erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
<?php
$sqld = "DELETE FROM a_table WHERE id=?";
$stmt=$pdo->prepare($sqld);
$stmt=$pdo->prepare($sqld);
Ausführen
if ($stmt->execute(array($sid)))
Prüfen
{
echo "Delete erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
echo "Delete erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
Objekt schließen einfügen
Verbindung beenden einfügen
?>
Löscht die gesamte Zeile(id) aus der Tabelle a_table der gewählten id.
DELETE löscht sofort und unwiderbringlich die gesamte Zeile(id),
es ist ratsam vorher eine Abfrage zu erstellen.
es ist ratsam vorher eine Abfrage zu erstellen.