Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP/MySQL] Prepared Statements mit mysqli
#1
Lightbulb 
Mittlerweile gewöhne ich mir meine eingefleischten Fehler ab und schreibe auch PHP-Code etwas besser - hoffentlich.

Eine Abfrage aus einer Datenbank ist im Grunde genommen sehr einfach und könnte so aussehen:

Code:
$erg = mysqli_query($db, "SELECT mailadresse FROM " . $tblname021 . " WHERE id = " . $n_id2);
$data = mysqli_fetch_assoc($erg);
$mailaddi = $data['mailadresse'] ?? null;

Der Code zeigt, dass ich durchaus mit Variablen in der Datenbankabfrage arbeite. Da ich diesen Code auf einem Webspace benutze, könnte es sein, dass Angreifer die Gelegenheit nutzen und meine Webseite nicht nur attakieren, sondern hacken. Das möchte ich vermeiden.

Der gleiche Zweck, den ich mit dem obigen Code verfolge, nämlich eine Mailadresse aus einer Tabelle zu erhalten, ist mit folgendem Code, der mit prepared statements geschrieben ist, gleichfalls zu erreichen:

Code:
$erg = "SELECT mailadresse FROM " . $tblname021 . " WHERE id = ?;";
$stmt = mysqli_stmt_init($db);

if (!mysqli_stmt_prepare($stmt, $erg)) {
    echo "SQL statement failed.";
} else {
    mysqli_stmt_bind_param($stmt, "s", $n_id2);
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);

    $data = mysqli_fetch_assoc($result);
    $mailaddi = $data['mailadresse'] ?? null;
}

Der Vorteil von dieser Art der Programmierung ist, dass sie sicherer ist. Der Nachteil, er ist dem geneigten Leser bereits aufgefallen, ist, dass es wesentlich mehr Code zu schreiben gibt. Naja, einen Tod muss der Hobbyprogrammierer wohl riskieren, um nicht Opfer dieser blöden Internetkriminellen zu werden.

Ob das nun der Weisheit letzter Schluss ist, vermag ich nicht zu sagen. Aber die Vorgehensweise habe ich nun mehrfach im Internet recherchiert (ohne Chat-GPT) und ebenfalls in neueren YouTube-Videos sehen können. Insofern gehe ich davon aus, dass es nicht allzu verkehrt ist, meine PHP-Skripte anzupassen und in der etwas aufwendigeren Art und Weise auf den Server zu legen.
Zitieren Return to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste