Categories > TinyButStrong general (FR) >

TbsSQL, incompatibilité protection des variables avec LIKE % ?

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Georges
Date: 2008-01-03
Time: 03:07

TbsSQL, incompatibilité protection des variables avec LIKE % ?

Re Bonjour^^

Voila j'ai un probleme avec TbsSQL (version mysqli)

Alors en fait tout marche bien, sauf la protection des variables comme %n% ou @n@ combiné avec le parametre LIKE '%

Voila par exemple une requete :
$this->db->GetRow("SELECT plugin, nom, tags FROM page where url='$page' AND langue LIKE '%$langue%'");

Cette requete marche sans probleme

Par contre si je veux proteger mes variables, avec cette requete :
$this->db->GetRow("SELECT plugin, nom, tags FROM page where (url='%1%') AND langue LIKE '%@2@%'",$page, $langue);

Et la ca coince, bien entendue au niveau du 2eme parametre, avec ce code d'erreur :
[TbsSql] Database error message: Erreur de syntaxe près de 'fr'%'' à la ligne 1

Alors est ce que la protection des variables est incompatible avec cette methode, ou bien y a t il une solution ?

Merci d'avance
By: Georges
Date: 2008-01-03
Time: 03:11

Re: TbsSQL, incompatibilité protection des variables avec LIKE % ?

Daccord, en remplacant, les @ par % (ce qui donne donc :
LIKE '%%2%%'
) cela marche tres bien...

Désolé pour ces 2 posts inutilent, j'ai pourtant chercher pendant pas mal de temps avant de poster, je ne comprend pas comment je suis passé à coter, encore désolé ! (à la limite supprimez ce post)
By: Skrol29
Date: 2008-01-03
Time: 10:16

Re: TbsSQL, incompatibilité protection des variables avec LIKE % ?

Salut,

En remplaçant les @ par des % tu risques de perdre la protection TbsSQL contre l'injection.

Je te conseille plutôt :
$this->db->GetRow("SELECT ... (langue LIKE '%'+@2@+'%')",$page, $langue);
By: Georges
Date: 2008-01-06
Time: 17:29

Re: TbsSQL, incompatibilité protection des variables avec LIKE % ?

Re

Non meme avec cette methode le message d'erreur persiste, je crois que ce sont les guillemets qu'ils n'aiment pas