SQL Server : dé-spécialiser guillemets ? - SQL/NoSQL - Programmation
Marsh Posté le 29-05-2008 à 12:10:58
Apprendre à coder, et dans ce cas précis à utiliser des requêtes préparées?
Marsh Posté le 29-05-2008 à 12:18:21
Peux-tu m'en dire plus sur les requêtes préparées ?
J'voulais savoir si le code se fait du côté de SQL Server ou uniquement du côté du formulaire ?
Marsh Posté le 29-05-2008 à 12:46:55
Sbartacus a écrit : Peux-tu m'en dire plus sur les requêtes préparées ? |
Non, google est là pour ça
Marsh Posté le 29-05-2008 à 12:54:22
Mauvaise journée ou mauvais réveil on dirait...
Pas grave, merci quand même.
Marsh Posté le 03-10-2008 à 10:04:30
Salut,
j'ai exactement le meme probleem. T'as reussit a le resoudre entre temps?
A+
Marsh Posté le 03-10-2008 à 11:19:01
au niveau de ton formulaire, tu dois TOUJOURS valider que tes données soient saines
dans ce cas précis tu dois remplacer les ' par \' , il existe généralement des fonctions prévues pour adns les langages
Mieux, tu peux utiliser des requetes preparées ( prepared statment )
Marsh Posté le 03-10-2008 à 11:20:03
Arf, dans mon cas c'est un SQL et je tape direct dans la base de donnée. mais entre temps, j'ai trouvé, faut mettre ca: '' (deux fois ' )
Marsh Posté le 03-10-2008 à 13:31:09
Ill Nino a écrit : Arf, dans mon cas c'est un SQL et je tape direct dans la base de donnée. mais entre temps, j'ai trouvé, faut mettre ca: '' (deux fois ' ) |
Marsh Posté le 03-10-2008 à 13:33:47
T'as l'air vachement malin comme gars toi! En tous cas sur ce topic tu rayonnes de connerie...
Marsh Posté le 03-10-2008 à 14:08:04
Ill Nino a écrit :
|
En l'occurence je te réfère à ma première réponse qui donne l'unique méthode correcte, plutôt que ton espèce d'immonde soupe dégueulasse à base de fail.
Marsh Posté le 03-10-2008 à 14:23:38
masklinn a écrit :
|
(oui enfin en sql brut les requêtes préparées hein...)
[edit]
Ah tiens j'avais pas vu que ça causait de formulaire au début.
Marsh Posté le 03-10-2008 à 14:24:13
Ill Nino a écrit : |
c'est pas que je l'apprécie bcp , mais je penses que le nombre de personnes qui peuvent le traiter d'incompetent sur ce forum est tres restreint
tu peux detailelr un peu comemnt tu travaille, parceque , de memoire, quand tu travaille uniquement dans les abses de donénes ( sans langage php/asp/vb/... ) les accents ne posent pas de problème
Marsh Posté le 03-10-2008 à 14:30:12
J'le traitais pas d'incompétent, j'trouve juste ca nul de venir prendre les gens de haut. C'est un forum pour experts en dev ici?
Et comme dit c'est un SQL en direct dans la BDD que je faisais...
Mon problème était avec des LIKE et les pseudos regex qui commencent et finissent par le fameux ' . Rechercher ce ' dans la regex la coupait en deux.
J'ai p'etre mal vu sinon, mais j'trouve ca dommage que SQL Server ne permette pas l'utilisation de vraie regex d'ailleurs... Ca serait bien pratique...
Marsh Posté le 03-10-2008 à 14:32:11
donc tu as juste repris un sujet qui ne parlait pas du même problème pour poser ta question, c'est rarement une bonne idée
Marsh Posté le 03-10-2008 à 14:33:07
Ill Nino a écrit : J'le traitais pas d'incompétent, j'trouve juste ca nul de venir prendre les gens de haut. C'est un forum pour experts en dev ici? |
non mais ton formulaire il est fait en quel langage?
Parce-que franchement il FAUT utiliser des requêtes préparées si tu veux éviter les ennuis...
Marsh Posté le 03-10-2008 à 14:34:15
skeye a écrit : |
Je n'ai pas de formulaire... J'fais de l'analyse de DB a sec...
Marsh Posté le 03-10-2008 à 14:37:16
donc ton premier post raconte n'importe-quoi.
Marsh Posté le 03-10-2008 à 14:38:36
skeye a écrit : donc ton premier post raconte n'importe-quoi. |
C'est pas moi le premier post...
Marsh Posté le 03-10-2008 à 14:39:35
ouh pinaise.
Donc
1) Tu n'as pas "exactement le même problème"
2) Je suis mal réveillé.
Marsh Posté le 03-10-2008 à 14:40:44
même pas
Marsh Posté le 03-10-2008 à 14:41:23
moi si , et j'avais compris avant toi
faut te poser les bonnes questions maitnenant
Marsh Posté le 03-10-2008 à 14:44:12
Ok, ok, j'ai pas exactement le meme probleme que lui alors... C'est vrai... Mais les causes et les consequences sont les memes non? Un ' qui vient couper une chaine en deux et ca fout le binz...
Marsh Posté le 03-10-2008 à 14:46:22
Ill Nino a écrit : Ok, ok, j'ai pas exactement le meme probleme que lui alors... C'est vrai... Mais les causes et les consequences sont les memes non? Un ' qui vient couper une chaine en deux et ca fout le binz... |
oui, mais la solution est complètement différente.
Marsh Posté le 03-10-2008 à 14:47:39
ben non
d'un coté ,on parle de sécuriser un formulaire ( automatiquement ) , de l'autre de requetes construites à la main. Donc d'un coté , cas e fait avec le langage utilisé coté serveur ( php/asp / ... ) et de l'autre , c'est une façon d'ecrire sa requêtes
on en revient donc au coeur du sujet
Marsh Posté le 03-10-2008 à 14:50:40
skeye a écrit : |
J'sais pas quoi te repondre la... C'est quoi la question?
"SQL Server : dé-spécialiser guillemets ?" moi aussi il fallait faire ca...
Marsh Posté le 03-10-2008 à 14:51:39
flo850 a écrit : ben non |
Ouhla, tu viens de casser le truc la. On aurait pu tenir toute l'aprem sur cette discussion de sourds...
Marsh Posté le 03-10-2008 à 15:08:43
skeye a écrit : (oui enfin en sql brut les requêtes préparées hein...) |
C'est fait pour ça, un peu
Tu confonds pas avec les stored procs?
Ill Nino a écrit : Ok, ok, j'ai pas exactement le meme probleme que lui alors... C'est vrai... Mais les causes et les consequences sont les memes non? Un ' qui vient couper une chaine en deux et ca fout le binz... |
Et la réponse est la même, prepared statement et non ta soupe immonde.
Marsh Posté le 03-10-2008 à 15:10:03
masklinn a écrit : |
WTF? S'il écrit son sql à la main dans un outil dédié il va pas s'amuser à y coller des variables.
Marsh Posté le 03-10-2008 à 15:11:28
skeye a écrit : WTF? S'il écrit son sql à la main dans un outil dédié il va pas s'amuser à y coller des variables. |
Ca l'empêche pas d'utiliser des prepared statements, à la base c'est une fonctionalités des DBs ce truc pas des langages, et MySQL expose une interface SQL pour
http://dev.mysql.com/tech-resource [...] ments.html bon ok c'est un peu verbeux, mais avec ça il est tranquille
Marsh Posté le 03-10-2008 à 15:12:45
un peu verbeux ?
c'est comme dire qu'il y aun peu de parenthèses en lisp
Marsh Posté le 03-10-2008 à 15:13:43
flo850 a écrit : un peu verbeux ? c'est comme dire qu'il y aun peu de parenthèses en lisp |
Faut pas abuser non plus, ça prend 2 lignes, et si une query donnée doit être effectuée plusieurs fois ça coûte quasiment plus rien (enfin c'est complètement con qu'ils forcent à utiliser des variables plutôt que des valeurs, postgres s'mieux )
Marsh Posté le 03-10-2008 à 15:20:31
masklinn a écrit : |
ça a à peu près aucun intérêt en-dehors d'une procédure stockée, ça.
Marsh Posté le 03-10-2008 à 15:23:57
skeye a écrit : ça a à peu près aucun intérêt en-dehors d'une procédure stockée, ça.:o |
Ben si, ça a l'intérêt de pas devoir échapper manuellement ses guillemets, et d'être sûr que ça va marcher sans se vautrer, ce qui est le but recherché ici d'après ce que j'ai pu comprendre
Marsh Posté le 03-10-2008 à 15:38:40
masklinn a écrit : |
Non mais faut arrêter de déconner, si tu veux éviter les soucis en tapant une requête à la main tu le fais dans un éditeur digne de ce nom, c'est tout.
Evidemment, je peux lancer sql developper et remplacer toutes les valeurs par :valeur et renseigner les infos à l'exécution, mais ça apporte rien, là. Vraiment rien.
Marsh Posté le 03-10-2008 à 15:40:36
c'est clari , a moins d'avoir vraiment du temps a perdre
tu t'habitue vite a ton nouveau statut
Marsh Posté le 03-10-2008 à 18:14:57
hé ben putain... j'ai callé l'affaire au milieu. z'avez fini de traumatiser les nouveaux comme ça ?
ceci dit, je suis pas d'accord avec masklinn sur un point : si on code direct dans un requêteur sql, les variables ça résoud pas les soucis de guillements : ils se posent tout pareil au moment d'affecter les variables
Marsh Posté le 03-10-2008 à 19:10:20
MagicBuzz a écrit : hé ben putain... j'ai callé l'affaire au milieu. z'avez fini de traumatiser les nouveaux comme ça ? ceci dit, je suis pas d'accord avec masklinn sur un point : si on code direct dans un requêteur sql, les variables ça résoud pas les soucis de guillements : ils se posent tout pareil au moment d'affecter les variables |
dépend de l'outil.
Marsh Posté le 29-05-2008 à 12:00:41
Bonjour,
Je fais un formulaire, dont les champs récupérés serviront à faire des requête sur une BD SQL Server 05.
Or, lorsque l'utilisateur rentre par exemple un champ avec un apostrophe au milieu, cela fausse la requête.
Exemple :
Nom ==> D'Agostinho
Prénom ==> Pierre
La requête qui en résulte est
Comment faire pour éviter ce désagrément ?
Merci.