Mysql
 sql >> Base de données >  >> RDS >> Mysql

Est-ce une méthode sécurisée pour insérer des données de formulaire dans une base de données MySQL ?

L'exemple que vous avez fourni insère les variables de publication dans la base de données sans les analyser au préalable pour détecter les entrées d'utilisateur malveillantes. Utilisez la conversion de type, les fonctions d'échappement/de filtrage, les instructions préparées, etc. avant de les utiliser pour interagir avec votre base de données.

Une règle générale à suivre est de ne jamais faire confiance à l'entrée de l'utilisateur. JAMAIS !

Consultez :Meilleur moyen d'arrêter l'injection SQL en PHP

En réponse à votre question, voici comment vous géreriez l'intégralité du formulaire à l'aide d'instructions préparées par PDO.

$stmt = $db->prepare('INSERT INTO Persons (FirstName, LastName, Age) VALUES (:first_name, :last_name, :age)');

$stmt->execute(array(':first_name' => $first_name,':last_name' => $last_name, ':age' => $age));

Si vous souhaitez simplement insérer une colonne dans l'enregistrement comme vous l'avez demandé, la syntaxe serait :

$stmt = $db->prepare('INSERT INTO Persons (FirstName) VALUES (:first_name)');

$stmt->execute(':first_name', $first_name);