Heim >Datenbank >MySQL-Tutorial >Wie können vorbereitete Anweisungen die Sicherheit und Leistung in PHP UPDATE-Abfragen verbessern?
Vorbereitete Anweisungen für Aktualisierungsabfragen
In PHP ist die Vorbereitung von Anweisungen für die Verbesserung der Abfragesicherheit und -leistung von entscheidender Bedeutung. Vorbereitete Anweisungen ermöglichen parametrisierte Abfragen, bei denen Platzhalter (?) anstelle der direkten Variableneinfügung verwendet werden.
Beispiel für UPDATE-Abfragen
Betrachten Sie die folgende MySQLi-Abfrage, die Daten aktualisiert in der Bewerbertabelle:
$db_usag->query("UPDATE Applicant SET phone_number ='$phone_number', street_name='$street_name', city='$city', county='$county', zip_code='$zip_code', day_date='$day_date', month_date='$month_date', year_date='$year_date' WHERE account_id='$account_id'");
Um diese Anweisung vorzubereiten, ersetzen Sie alle Variablenzuweisungen durch Platzhalter:
<code class="php">$sql = "UPDATE Applicant SET phone_number=?, street_name=?, city=?, county=?, zip_code=?, day_date=?, month_date=?, year_date=? WHERE account_id=?";</code>
Als nächstes initialisieren Sie ein vorbereitetes Anweisungsobjekt:
<code class="php">$stmt = $db_usag->prepare($sql);</code>
Binden Sie Parameter mit der Methode bind_param() an die Anweisung. Geben Sie die Datentypen der Parameter entsprechend an:
<code class="php">// Assuming the date and account_id parameters are integers `d` and the rest are strings `s` $stmt->bind_param('sssssdddd', $phone_number, $street_name, $city, $county, $zip_code, $day_date, $month_date, $year_date, $account_id);</code>
Führen Sie die vorbereitete Anweisung aus:
<code class="php">$stmt->execute();</code>
Überprüfen Sie, ob Fehler vorliegen:
<code class="php">if ($stmt->error) { echo "FAILURE!!! " . $stmt->error; }</code>
Wenn die Ausführung erfolgreich war Erfolgreich, rufen Sie die Anzahl der betroffenen Zeilen ab:
<code class="php">echo "Updated {$stmt->affected_rows} rows";</code>
Schließen Sie abschließend das Anweisungsobjekt:
<code class="php">$stmt->close();</code>
Durch die Verwendung vorbereiteter Anweisungen können Sie potenzielle Injektionsangriffe vermeiden und die Effizienz von verbessern Ihre Datenbankabfragen.
Das obige ist der detaillierte Inhalt vonWie können vorbereitete Anweisungen die Sicherheit und Leistung in PHP UPDATE-Abfragen verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!