Skip to content

Exécuter une requête avec PDO

Objectifs pédagogiques

  • Comprendre comment exécuter une requête SQL avec PDO.
  • Utiliser query() pour les requêtes simples.
  • Lire les résultats d'une requête SQL.

Requêtes simples avec query()

Lorsque vous n'avez pas besoin de passer de paramètres (requêtes en lecture, par exemple), vous pouvez utiliser la méthode query() :

php
<?php

$pdo = new PDO('mysql:host=localhost;dbname=todo_app', 'root', '');

// Requête de lecture
$sql = "SELECT * FROM tasks";
$result = $pdo->query($sql);

// Affichage des résultats
foreach ($result as $row) {
    echo $row['label'] . "<br>";
}

Remarques :

  • query() exécute immédiatement la requête et retourne un objet PDOStatement.
  • En cas d’erreur SQL, PDO peut retourner false, il est donc conseillé de vérifier :
php
if ($result === false) {
    echo "Erreur lors de l'exécution de la requête.";
}

Utilisation dans un contexte d'écriture

php
<?php

$pdo = new PDO('mysql:host=localhost;dbname=todo_app', 'root', '');

$pdo->query("INSERT INTO tasks (label, category, done, created_at) VALUES ('Nouvelle tâche', 'Test', 0, NOW())");

Attention

query() ne doit pas être utilisé pour exécuter des requêtes avec des valeurs dynamiques (provenant de l’utilisateur) car cela expose votre application aux injections SQL. Dans ce cas, on utilisera plutôt les requêtes préparées.

Conclusion

  • query() est pratique pour les requêtes simples et sûres.
  • Toujours valider et échapper les données entrantes.
  • Préférer prepare() pour les requêtes avec des paramètres.