PHP Data Objects (PDO) propose des instructions préparées pour une interaction MySQL sécurisée, mais la construction de INSERT INTO
requêtes peut être difficile. Abordons un problème commun et sa solution.
Considérez ce code :
<code class="language-php">$statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES('Bob','Desaunois','18')"); $statement->execute();</code>
Ce code apparemment correct ne parvient souvent pas à remplir la base de données. Pourquoi ?
La clé est la liaison des paramètres. Cela évite les vulnérabilités d’injection SQL et améliore la maintenabilité du code. Au lieu d'intégrer directement des valeurs, PDO utilise des espaces réservés :
:name
dans le SQL et fournissez des valeurs dans un tableau associatif à execute()
.?
comme espaces réservés et fournissez des valeurs dans un tableau indexé numériquement à execute()
.Voici le code corrigé utilisant les paramètres nommés :
<code class="language-php">$statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES (:name, :lastname, :age)"); $statement->execute([ 'name' => 'Bob', 'lastname' => 'Desaunois', 'age' => '18', ]);</code>
Et voici l'équivalent en utilisant les paramètres positionnels :
<code class="language-php">$statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES (?, ?, ?)"); $statement->execute(['Bob', 'Desaunois', '18']);</code>
La liaison de paramètres améliore la sécurité de la base de données et rend votre code plus efficace et plus lisible. C’est essentiel pour une utilisation robuste du PDO. La maîtrise de cette technique est cruciale pour une programmation de base de données PHP sécurisée et efficace.
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!