Administrateur PHPfrance |
9782 Messages
19 mars 2017, 22:40
La raison est un peu bizarre, mais c'est logique que ça ne fonctionne pas avec LIMIT
En réalité, quand on utilise PDO::execute() les paramètres qui sont injectés le sont sous la forme de chaine de caractères c'est à dire avec des guillemets et donc ta requête devient :
DELETE FROM news WHERE type='toto' LIMIT '2'
Ce qui n'est pas correcte.
La solution est d'utiliser bindValue() en précisant que le paramètre est un entier pour que la variable soit passée sans guillemet
$bdd->bindValue('limit_val', $num, PDO::PARAM_INT);
Quand tout le reste a échoué, lisez le mode d'emploi...