Frage:
Was ist das Äquivalent von bei der Migration von mysql_* zu PDO? mysql_real_escape_string-Funktion?
Antwort:
Im Gegensatz zu mysql_real_escape_string führt PDO automatisches Escape durch die Verwendung vorbereiteter Anweisungen durch. Vorbereitete Anweisungen verwenden Platzhalter (z. B. ?), anstatt Benutzereingaben direkt in SQL-Abfragen einzufügen, wodurch SQL-Injection-Schwachstellen vermieden werden.
Beispiel:
<code class="php">try { $db = new PDO(...); } catch (PDOException $e) { echo "Error connecting to mysql: " . $e->getMessage(); } if (isset($_POST['color'])) { $stmt = $db->prepare("SELECT id, name, color FROM Cars WHERE color = ?"); $stmt->execute([$_POST['color']]); $cars = $stmt->fetchAll(\PDO::FETCH_ASSOC); var_dump($cars); }</code>
In diesem Beispiel , $_POST['color'] wird als Parameter in der vorbereiteten Anweisung übergeben und schützt die Abfrage vor Injektion.
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie entgeht man Benutzereingaben bei der Migration von mysql_* zu PDO?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!