N'utilisez jamais directement quelque chose transmis par un utilisateur. Jamais. C'est une énorme faille de sécurité, probablement l'une des pires.
⛔️ Vraiment ne faites jamais ça. ⛔️
'SELECT * FROM users WHERE id = ' . $_GET['id']
⛔️ "Never ever ever !" (Taylor Swift) ⛔️
On utilise donc les paramètres et la préparation de requête. En faisant ça, PDO va se charger de nettoyer les données de ce qui pourrait y être nuisible.
Vous avez un exemple dans la démonstration de fetch, mais je le remets au cas où c'est important :
if (isset($_GET['id'])) {
// je mets un placeholder dans la requête avec :
$query = $db->prepare('SELECT * FROM users WHERE id = :id');
// je prépare ma requête avec les paramètres
$parameters = [
'id' => $_GET['id']
];
// PDO va cleaner les paramètres puis exécuter la requête
$query->execute($parameters);
$user = $query->fetch(PDO::FETCH_ASSOC);
}
Écrire dans la base de données avec INSERT
Le principe sera le même pour utiliser INSERT, mais dans ce cas-là, pas besoin de fetch, simplement de récupérer l'id de notre nouvelle entrée dans la base :