Bonjour, j'ai créé la requête suivante avec Doctrine ORM, qui permet d'afficher "les messages ayant certains tags".
Mysql retourne une erreur 'SQLSTATE[42000]: Syntax error or access violation: 1064 ...'
lorsque le tag contient le mot 'on', ou 'with'. Par exemple le tag 'ruby on rails'. Voici la requête :
Code :
- $taginput = 'ruby on rails';
- $i = 1;
- $q = Doctrine_Query::create()
- ->select('q.id')
- ->from('Message q')
- ->innerJoin("q.Tags t$i WITH t$i.name = '$taginput'" );
- $data['messages'] = $q->execute()->getData();
|
Je ne comprend pas pourquoi Doctrine interprète $taginput quand celui contient le mot "on" ou "with", alors qu'il est entre guillemets. Il n'y a pas d'erreur SQL provoqué pour des tags comme "php", "jquery", etc.
Comment pourrait-je sécuriser mon code ?
Message édité par strim le 19-03-2011 à 12:18:14