Maison > Article > base de données > Comment échapper aux entrées de l'utilisateur lors de la migration de mysql_* vers PDO ?
Question :
Lors de la migration de mysql_* vers PDO, quel est l'équivalent du Fonction mysql_real_escape_string ?
Réponse :
Contrairement à mysql_real_escape_string, PDO effectue un échappement automatique grâce à l'utilisation d'instructions préparées. Les instructions préparées utilisent des espaces réservés (par exemple ?) au lieu d'insérer directement les entrées de l'utilisateur dans les requêtes SQL, empêchant ainsi les vulnérabilités d'injection SQL.
Exemple :
<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>
Dans cet exemple , $_POST['color'] est passé en tant que paramètre dans l'instruction préparée, protégeant la requête de l'injection.
Remarques supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!