On m'a dit aujourd'hui que je devrais vraiment utiliser PDO et préparer des déclarations dans ma demande. Bien que je comprenne les avantages, j'ai du mal à comprendre comment je les implémente dans mon flux de travail. Outre le fait qu'il rend le code beaucoup plus propre, dois-je avoir une classe de base de données spécifique qui héberge toutes mes instructions préparées ou dois-je en créer une à chaque fois que je veux exécuter une requête? Je trouve très difficile de comprendre quand je dois utiliser une requête PDO standard et quand je dois utiliser une instruction préparée. Tous les exemples, conseils ou liens de tutoriel seraient grandement appréciés.
Il existe deux excellents exemples sur la documentation pdo :: prepare () .
Je les ai inclus ici et les ai simplifiés un peu.
Celui-ci utilise ?
paramètres. $dbh
est essentiellement un objet PDO. Et ce que vous faites, c'est de mettre les valeurs 150
et 'red'
dans le premier et le deuxième point d'interrogation respectivement.
/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
Celui-ci utilise des paramètres nommés et est un peu plus complexe.
/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();