Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mit URL-Parametern sicher MySQL-vorbereitete Anweisungen in PHP erstellen?

Wie kann ich mit URL-Parametern sicher MySQL-vorbereitete Anweisungen in PHP erstellen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-14 00:50:17672Durchsuche

How Can I Securely Create MySQL Prepared Statements in PHP Using URL Parameters?

Erstellen sicherer vorbereiteter MySQL-Anweisungen in PHP

Vorbereitete Anweisungen bieten erhöhte Sicherheit und potenzielle Leistungsverbesserungen für Datenbankabfragen. Hier ist eine umfassende Anleitung zum Erstellen sicherer vorbereiteter MySQL-Anweisungen in PHP mithilfe der Eingabe von URL-Parametern.

Vorbereitete Anweisungen erstellen

Instanziieren Sie eine MySQLi-Verbindung und bereiten Sie eine Anweisung mit mysqli_prepare vor( ):

$db = new mysqli("host","user","pw","database");
$stmt = $db->prepare("SELECT * FROM mytable where userid=? AND category=? ORDER BY id DESC");

Verbindlich Parameter

Verwenden Sie mysqli_stmt_bind_param(), um Eingabeparameterwerte an Anweisungsplatzhalter zu binden:

$userid = intval($_GET['userid']);
$category = intval($_GET['category']);
$stmt->bind_param('ii', $userid, $category);

Daten ausführen und abrufen

Führen Sie die aus vorbereitete Anweisung und rufen Sie die Ergebnisse mit mysqli_stmt_execute() und ab mysqli_stmt_store_result():

$stmt->execute();
$stmt->store_result();

Verwenden Sie mysqli_stmt_bind_result(), um die Spaltennamen an Variablen zu binden und über die Ergebnisse zu iterieren:

$stmt->bind_result($column1, $column2, $column3);
while ($stmt->fetch()) {
    echo "col1=$column1, col2=$column2, col3=$column3 \n";
}

Erweiterte Flexibilität für assoziative Arrays

Für Abfragen, die mehrere Spalten zurückgeben (z. B. SELECT *) können Sie die Funktion stmt_bind_assoc() verwenden, um die Ergebnisse an ein assoziatives Array zu binden:

$resultrow = array();
stmt_bind_assoc($stmt, $resultrow);

while ($stmt->fetch()) {
    print_r($resultrow);
}

Leistungsverbesserungen

Bei der Verwendung von Prepared Während Anweisungen die Leistung bei mehreren Ausführungen derselben Abfrage steigern können, rechtfertigt der Aufwand für die Erstellung und Vorbereitung der Anweisung möglicherweise nicht, sie nur für drei oder vier Ausführungen zu verwenden Ausführungen.

Indem Sie diese Schritte befolgen, können Sie sicherstellen, dass Ihre MySQL-Abfragen sicher und effizient sind.

Das obige ist der detaillierte Inhalt vonWie kann ich mit URL-Parametern sicher MySQL-vorbereitete Anweisungen in PHP erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn