Maison  >  Article  >  base de données  >  Comment insérer des données de formulaire dans MySQL à l'aide d'instructions préparées en PHP ?

Comment insérer des données de formulaire dans MySQL à l'aide d'instructions préparées en PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-10 11:19:02665parcourir

How to Insert Form Data into MySQL Using Prepared Statements in PHP?

PHP : Insertion de valeurs du formulaire dans MySQL

Problème

Vous avez créé une table de base de données et essayez d'insérer des valeurs à partir d'un HTML formez-y, mais la base de données reste vide. Le code déclare la requête SQL en tant que variable chaîne mais ne l'exécute pas, laissant la base de données inchangée.

Réponse

Pour insérer des valeurs à l'aide d'un formulaire, suivez ces étapes :

  1. Ne faites jamais confiance aux entrées de l'utilisateur : Les entrées des formulaires peuvent être manipulées, provoquant potentiellement des vulnérabilités d'injection SQL.
  2. Utilisez des instructions préparées : Elles vous permettent de spécifier des espaces réservés. pour les valeurs de l'instruction SQL, qui sont ensuite liées dynamiquement aux variables, empêchant ainsi les entrées malveillantes.
  3. Modifiez votre code PHP :
<?php

// Database configuration
include_once 'dbConfig.php';

if (isset($_POST['save'])) {
    // Prepare the statement
    $sql = "INSERT INTO users (username, password, email) VALUES (?,?,?)";
    $stmt = $mysqli->prepare($sql);

    // Bind the parameters to the statement
    $stmt->bind_param("sss", $_POST['username'], $_POST['email'], $_POST['password']);

    // Execute the statement
    $stmt->execute();

    // Close the statement
    $stmt->close();
}

?>

Instruction préparée Notes

  • Des espaces réservés (?) sont utilisés pour la liaison de variables.
  • Utilisez bind_param pour lier des types de variables (par exemple, sss pour trois chaînes).
  • exécutez enfin les insertions les valeurs dans la base de données.

Sécurité des mots de passe

Notez que les mots de passe ne doivent jamais être stockés en texte clair. Utilisez plutôt password_hash pour stocker un hachage sécurisé du mot de passe.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn