Comment utiliser correctement les instructions préparées avec les requêtes PDO pour MySQL INSERT ?

Patricia Arquette
Libérer: 2024-11-24 22:43:15
original
833 Les gens l'ont consulté

How to Properly Use Prepared Statements with PDO for MySQL INSERT Queries?

Exécuter des requêtes MySQL INSERT à l'aide d'instructions préparées avec PDO

Dans le domaine des objets de données PHP (PDO), des difficultés peuvent survenir lorsque vous tentez de exécuter des requêtes SQL via des instructions préparées. Un problème courant implique l'utilisation de l'instruction INSERT INTO pour ajouter des enregistrements à une base de données.

Considérez le code suivant :

$dbhost = "localhost";
$dbname = "pdo";
$dbusername = "root";
$dbpassword = "845625";

$link = new PDO("mysql:host=$dbhost;dbname=$dbname","$dbusername","$dbpassword");

$statement = $link->prepare("INSERT INTO testtable(name, lastname, age)
        VALUES('Bob','Desaunois','18')");

$statement->execute();
Copier après la connexion

Ce code tente d'insérer un nouvel enregistrement dans la table testtable dans un Base de données MySQL. Cependant, la base de données reste vide.

Pour résoudre ce problème, vous devez utiliser des requêtes paramétrées au lieu d'intégrer des valeurs directement dans l'instruction SQL. Les requêtes paramétrées utilisent des espaces réservés (?) ou des paramètres nommés (:parameter) pour représenter les valeurs, qui sont ensuite liées aux valeurs réelles lors de l'exécution. Cette approche empêche les attaques par injection SQL et garantit la validation des données.

La manière correcte d'utiliser les instructions préparées avec INSERT INTO est la suivante :

$dbhost = 'localhost';
$dbname = 'pdo';
$dbusername = 'root';
$dbpassword = '845625';

$link = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbusername, $dbpassword);
$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
    VALUES (:fname, :sname, :age)');

$statement->execute([
    'fname' => 'Bob',
    'sname' => 'Desaunois',
    'age' => '18',
]);
Copier après la connexion

En utilisant des requêtes paramétrées, vous protégez votre application contre entrée malveillante et assurez l’intégrité de vos données.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal