Prepared Statements mit PHP

Zu guter erst, was sind Prepared Statements und wozu dienen diese?

Prepared Statements sind SQL Statements die vor ihrer ausführung vorbereitet werden.
Wie der Name es schon sagt.

Die Vorteile dadurch sind das unter anderem ein Statement welches bereits ausgeführt wurde
bei einer neu verwendung nicht erneut ausgeführt werden muss, dies spart jede menge Zeit.
Außerdem schützen Prepared Statements gegen SQL-Injections jeglicher Art, da der Treiber selbst
die Filterung von nicht erwünschtem SQL Code übernimmt.

Hier folgen nun ein paar Prepared Statements mit einem Code-Beispiel aus der gewöhnlichen Programmierung
mit SQL.

Normal:


Prepared-Statements:


Hier sehen wir wie das Verbinden zum DBMS bzw. der Datenbank mittels Prepared Statements ermöglicht wird.
Dies erspart im Vergleich zum gewöhnlichen connect jede menge Schreibarbeit.

PDO ist der Prepared Statements Treiber den wir hier in PHP verwenden. Wir erzeugen also ein neues Objekt.

Tupel einfügen mit Prepared Statements

Normal:


Prepared-Statements:


Hier schreiben wir einen neuen Eintrag in die Tabelle users mit Prepared Statements.
Hierbei müssen wir erst einmal in unser SQL-Statement variablen setzen bevor wir das Statement vorbereiten.
Nachträglich nach dem vorbereiten ersetzen wir die Platzhalter durch unsere eigentlichen Werte und führen
das SQL-Statement dann aus.
(Execute gibt bei erfolgreicher Ausführung ein true zurück)

Lesen aus einer Datenbank mit Prepared Statements

Normal:

";
	}

?>

Prepared-Statements:

prepare("SELECT username, password FROM users;");
	$stmt->execute();

	echo "Tupel:";

	while($row = $stmt->fetch()){
		echo "Username: ".$row["username"]." Prüfsumme: ".$row["password"]."
";
	}

?>

Hier holen wir uns alle Tupel aus der Tabelle users.

Natürlich gibt es noch viele weitere Methoden für die Verwendung von Prepared Statements.
Diese findet ihr unter

http://www.php.net/manual/de/class.pdostatement.php

Leave a Reply