2009-12-07 3 views
1

Puis-je utiliser des espaces réservés dans une instruction préparée pour la clause order by de ma requête?Perl: Utilisation des espaces réservés DBI pour la clause ORDER BY

Je ne devine pas, comme je l'ai essayé, et cela n'a pas semblé fonctionner, mais il n'a pas non plus jeté d'erreurs, ce qui semblait étrange.

Existe-t-il une meilleure façon de procéder, autre que de générer simplement une chaîne SQL avec les entrées validées?

Répondre

8

Non, vous ne pouvez pas utiliser d'espace réservé pour le nom de la colonne. De DBI manual:

Avec la plupart des pilotes, des espaces réservés ne peuvent pas être utilisés pour tout élément d'une déclaration qui empêcherait le serveur de base de données de validation de la déclaration et la création d'un plan d'exécution de la requête pour elle.

Mais vous pouvez toujours construire une requête en perl. Dans ce cas, utilisez la méthode quote_identifier pour citer le nom de la colonne.

+4

Ne pas trier en Perl. La base de données peut le faire mieux. – friedo

+0

@friedo: Merci pour cet indice. J'ai enlevé cette partie –