Salut!
L'utilisation de PDO est plus sécurisée quand il est correctement implémenté. Les avantages sont nombreux.
En gros avec PDO si tu utilises les requêtes préparées tes variables seront systématiquement protégées contre les injections donc plus besoin des déclarer 50 fonctions en amont de ta requête.
Voici un exemple pour deux types de requêtes:
Une requête simple sans variable
$pdo->query('SELECT name FROM user WHERE id = \'2\'');
Une requête avec variables
1 2 3
| $req = $pdo->prepare('SELECT name FROM user WHERE id = :id ');
$req->bindValue(':id',$_POST['id']); // C'est grossier, il est évident qu'il faudra un minimum de contrôles en amont
$req->execute(); |
Pour la seconde requête :id est un marqueur donc tu ne dois pas l'encapsuler entre quote, sinon tu enverrai :id et non le contenu de $_POST['id']. binValue sert à attribuer une variable à un marqueur, cette variable sera traitée pour que les injections ne soient pas possibles.
tu peux faire une variante de cette requête, certains trouvent ça mieux:
1 2
| $req = $pdo->prepare('SELECT name FROM user WHERE id = :id ');
$req->execute(array(':id'=>$_POST['id'])); // C'est grossier, il est évident qu'il faudra un minimum de contrôles en amont |
Pour finir je dirai que PDO c'est que du bonheur, avec une bonne gestion on peux rendre un système portable sur quasiment tous types de BDD
Partager