"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je utiliser correctement les instructions préparées avec INSERT INTO en PHP ?

Comment puis-je utiliser correctement les instructions préparées avec INSERT INTO en PHP ?

Publié le 2024-12-21
Parcourir:816

How Can I Properly Use Prepared Statements with INSERT INTO in PHP?

Incorporation d'instructions préparées avec INSERT INTO

En parcourant les profondeurs labyrinthiques de PHP : Data Objects, une énigme déroutante surgit lors de la tentative d'exécution de MySQL requêtes utilisant des instructions préparées, spécifiquement pour les opérations INSERT INTO. Considérez l'extrait de code suivant :

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

$statement->execute();

Malgré le respect de la prétendue méthode prescrite, la base de données reste obstinément désolée. Explorons les éléments manquants qui ont entravé notre progression.

La clé pour libérer le potentiel des instructions préparées pour les requêtes INSERT INTO réside dans la liaison de paramètres, une technique qui permet l'intégration sécurisée et dynamique des valeurs dans le Instruction SQL. Ceci est réalisé en incorporant des espaces réservés dans la requête et en fournissant ensuite les valeurs correspondantes sous forme de tableau associatif pendant l'exécution.

Observez le code révisé :

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

$statement->execute([
    'fname' => 'Bob',
    'sname' => 'Desaunois',
    'age' => '18',
]);

Notez la présence des noms de paramètres, ':fname', ':sname' et ':age', dans la requête. Ceux-ci servent d'espaces réservés pour les valeurs réelles, qui sont ensuite fournies sous forme de tableau associatif dans la fonction execute().

Vous pouvez également utiliser le « ? » syntaxe comme espaces réservés et transmettez un tableau de valeurs sans spécifier les noms des paramètres :

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

$statement->execute(['Bob', 'Desaunois', '18']);

Les deux approches offrent leurs avantages et inconvénients respectifs. L'utilisation de paramètres nommés améliore la lisibilité, tandis que le « ? » la syntaxe simplifie le processus de liaison des valeurs. Cependant, en fin de compte, le choix entre les deux est une question de préférence personnelle.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3