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
$sql ="SELECT spalte1, spalte2, datum FROM a_table";
$stmt=$msql->prepare($sql);
$stmt->execute();
$result = $stmt->get_result();
$stmt=$msql->prepare($sql);
$stmt->execute();
$result = $stmt->get_result();
Daten ausgabe
while ($row = $result->fetch_assoc())
{
$datum = new DateTime($row['datum']);
echo $row['spalte1'];
echo $row['spalte2'];
echo $datum->format('d.m.Y - H:i:s');
}
{
$datum = new DateTime($row['datum']);
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->execute();
$stmt=$pdo->prepare($sql);
$stmt->execute();
Daten ausgabe
while ($row = $stmt->fetch())
{
$datum = new DateTime($row['datum']);
echo $row['spalte1'];
echo $row['spalte2'];
echo $datum->format('d.m.Y - H:i:s');
}
{
$datum = new DateTime($row['datum']);
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
$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);
if ($stmt->execute())
{
echo "Insert erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
$stmt=$msql->prepare($sqli);
$spalte1 = $msql->real_escape_string($beitrag1);
$spalte2 = $msql->real_escape_string($beitrag2);
$stmt->bind_param('ss', $spalte1, $spalte2);
if ($stmt->execute())
{
echo "Insert erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
$sqli = "INSERT INTO a_table (spalte1, spalte2) VALUES(?, ?)";
$stmt=$pdo->prepare($sqli);
if ($stmt->execute(array($beitrag1, $beitrag2)))
{
echo "Insert erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
$stmt=$pdo->prepare($sqli);
if ($stmt->execute(array($beitrag1, $beitrag2)))
{
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
<?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);
if ($stmt->execute())
{
echo "Update erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
$stmt=$msql->prepare($sqlu);
$spalte1 = $msql->real_escape_string($beitrag1);
$spalte2 = $msql->real_escape_string($beitrag2);
$stmt->bind_param('ssi', $spalte1, $spalte2, $sid);
if ($stmt->execute())
{
echo "Update erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
<?php
$sqlu = "UPDATE a_table SET spalte1=?, spalte2=? WHERE id=?";
$stmt=$pdo->prepare($sqlu);
if ($stmt->execute(array($beitrag1, $beitrag2, $sid)))
{
echo "Update erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
$stmt=$pdo->prepare($sqlu);
if ($stmt->execute(array($beitrag1, $beitrag2, $sid)))
{
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
<?php
$sqld = "DELETE FROM a_table WHERE id=?";
$stmt=$msql->prepare($sqld);
$stmt->bind_param('i', $sid);
if ($stmt->execute())
{
echo "Delete erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
$stmt=$msql->prepare($sqld);
$stmt->bind_param('i', $sid);
if ($stmt->execute())
{
echo "Delete erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
<?php
$sqld = "DELETE FROM a_table WHERE id=?";
$stmt=$pdo->prepare($sqld);
if ($stmt->execute(array($sid)))
{
echo "Delete erfolgreich.";
}
else
{
echo "Da ist was schief gelaufen.";
}
$stmt=$pdo->prepare($sqld);
if ($stmt->execute(array($sid)))
{
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.