Heim >Datenbank >MySQL-Tutorial >Benötige ich „mysql_real_escape_string()' mit vorbereiteten Anweisungen?

Benötige ich „mysql_real_escape_string()' mit vorbereiteten Anweisungen?

Susan Sarandon
Susan SarandonOriginal
2024-11-02 20:11:30255Durchsuche

Do I Need `mysql_real_escape_string()` with Prepared Statements?

Ist die Funktion mysql_real_escape_string() für vorbereitete Anweisungen erforderlich?

Bei Verwendung vorbereiteter Anweisungen wie in der angegebenen Abfrage:

<code class="php">$sql = $db->prepare('select location from location_job where location like ?');

$sql->bind_param('s', $consulta);
$sql->execute();
$sql->bind_result($location);</code>

Die Funktion mysql_real_escape_string() ist nicht erforderlich, da vorbereitete Anweisungen eine sichere Möglichkeit bieten, SQL-Injection-Angriffe zu verhindern, indem sie alle Sonderzeichen in der Eingabe maskieren.

Ein Vorschlag zur Verbesserung der Abfrage ist die Verwendung der ' ?' Platzhalter, der es Ihnen ermöglicht, Parameter bequemer über die Ausführungsmethode zu übergeben:

<code class="php">$sql->execute([$consulta]);</code>

Stellen Sie jedoch sicher, dass Sie Benutzereingaben mit htmlspecialchars() bereinigen, bevor Sie sie anzeigen, um Cross-Site-Scripting-Schwachstellen zu vermeiden.

Das obige ist der detaillierte Inhalt vonBenötige ich „mysql_real_escape_string()' mit vorbereiteten Anweisungen?. 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