dedlfix: SQL-Injektion Schutz auch bei Prepared Statements?

Beitrag lesen

Hi!

mysqli_real_escape_string() ist _wieder_ was anderes oder gehts da um die selbe Sache?

Wie gesagt, du kannst auch mit mysqli den herkömmlichen Weg nehmen. Hinzugekommen ist der P.S.-Weg. (Man kann auch quasi beides mischen.)

Herkömmlich:

$mysqli = new mysqli(...);
$sql = sprintf("... '%s' ...", $mysqli->real_escape_string(...));
$mysqli_result = $mysqli->query($sql);
$mysqli_result->fetch...()

Prepared Statements:

$mysqli = new mysqli(...)
$sql = "... ? ...";
$mysqli_stmt = $mysqli->prepare($sql);
$mysqli_stmt->bind_param(...);
$mysqli_stmt->execute();
$mysqli_stmt->bind_result(...);
$mysqli_stmt->fetch();

Die Beispiele erheben keinen Anspruch auf Vollständigkeit, sie sollen nur die Zugehörigkeit der wichtigsten Methoden zeigen.

Lo!