locomputing
Prepared Statement 
Prepared Statements sind mit
new mysqli etwas anders umzusetzen wie mit pdo
Hier ein paar ganz einfache Beispiele:
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
Es wird die entsprechende Datenbank Verbindung benötigt
Datenbank ausgabe
<?php
$sql ="SELECT spalte1, spalte2, datum FROM a_table";
$stmt=$msql->prepare($sql);
$stmt->execute();
$result = $stmt->get_result();
Datenausgabe
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');
}
<?php
$sql ="SELECT spalte1, spalte2, datum FROM a_table";
$stmt=$pdo->prepare($sql);
$stmt->execute();
Datenausgabe
while ($row = $stmt->fetch())
{
$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 
Es wird die entsprechende Datenbank Verbindung benötigt
Es wird ein Formular benötigt.
Formular muß erstellt werden!
<?php
$beitrag1 = isset($_POST['beitrag1']) ? $_POST['beitrag1'] : ''; // tested
$beitrag2 = isset($_POST['beitrag2']) ? $_POST['beitrag2'] : ''; // tested
?>
// tested Symbolisch für geprüfte Daten aus einem Formular
Datenbank eintrag
<?php
$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.";
}
<?php
$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.";
}
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.
Es wird die entsprechende Datenbank Verbindung benötigt
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
?>
// 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
?>
// tested Symbolisch für geprüfte Daten aus einer Auflistung oder einem Formular
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.";
}
<?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.";
}
Objekt schließen einfügen
Verbindung beenden einfügen
?>
DELETE 
Es wird die entsprechende Datenbank Verbindung benötigt
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
?>
// tested Symbolisch für geprüfte Daten aus einer Auflistung oder einem Formular
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.";
}
<?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.";
}
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.