Envoyé par : Raphael
Date : 04/12/2006 15:04
Bonjour, j'ai un textbox que j'enregistre dans ma base de données SQLite3 avec le code suivant :
var Notes = $("deck_notes").value; ydmdecks.do("UPDATE decks SET Notes='"+Notes+"', Updated=DATE('NOW') WHERE Deck_ID='"+decks[this.Deck_Index].ID+"'");
Cela marche bien SAUF SI mon textbox contient des apostrophes. Comment les faire passer ? J'ai 2 pistes :
var s = db.createStatement("UPDATE notes SET name = ?1, text = ?2, updated_at = DATETIME('NOW') WHERE id = ?3"); s.bindStringParameter(0, this.name); s.bindStringParameter(1, this.text); s.bindInt32Parameter(2, this.id); s.execute();
Mais je ne suis pas à l'aise avec cette gestion des variables "?1" et "?2" donc je ne parviens pas à comprends totalement le code.
J'aimerais donc savoir si l'on peut appliquer une bête méthode à ma variable pour faire passer les apostrophes... Ou bien savoir comment je peux adapter mon code avec des variables du type "?1" parce qu'apparemment mon problème d'apostrophe vient du fait que ma syntaxe de requête SQL inclue des apostrophes non ? : Notes='"+Notes+"'
Merci d'avance.
Envoyé par : laurentj
Date : 04/12/2006 15:55
c'est si compliqué d'utiliser la méthode replace des strings pour remplacer ' par \' ?
Envoyé par : Raphael
Date : 04/12/2006 16:37
Je suis désolé, mais je ne comprends toujours pas. Je me débrouille plus qu'autre chose en programmation. Je suis matheux et je n'ai jamais eu de cours d'informatique plus loin que le DEUG. Je suis donc à peu près auto-didacte et je navigue entre livres, Google, Tutoriaux, Wiki et autres forums pour trouver réponse à mes interrogations.
Et il se trouve que ce sujet, je ne le maitrise pas vraiment. Pour moi, la fonction replace() s'utilise avec RegExp pour par exemple transformer un lien en un lien cliquable non ? Pour remplacer une chaine de caractères par une autre plus généralement.
Là, je ne comprends pas en quoi ça va m'aider en fait ? Il me semble déjà avoir lu quelque chose sur ces "?1" mais je ne retrouve plus où, même après recherche sur le Tutorial PDF et le Wiki.
Peux-tu m'expliquer un peu plus en détails la manière de procéder ? Pourquoi dois-je mettre des " '? " à la place de mes apostrophes ? ça l'échappe ?
J'ai essayé ça :
var reg = new RegExp("'", "g"); var Notes = $("deck_notes").value; var Notes = Notes.replace(reg,"'?");
Mais ça ne marche pas...
Je suis conscient que ce problème doit sembler ridicule pour un programmeur même moyen, mais bon, c'est vraiment pas ma tasse de thé les caractères spéciaux, les apostrophes et tout...
Encore merci.
Envoyé par : thx1138
Date : 06/12/2006 12:02
Utilise la fonction encodeURIComponent()
cela fonctionne très bien
Envoyé par : Raphael
Date : 06/12/2006 12:16
Oki, merci de l'info. je note.
En fait, j'ai réussi à résoudre le problème avec replace() mais en doublant les apostrophes, et ça passe bien.
Envoyé par : laurentj
Date : 06/12/2006 13:07
mon message est mal passé. je voulais dire remplacer ' par \'
Envoyé par : Ner0lph
Date : 14/12/2006 21:15
Ou bien :
Notes.replace(reg,"’");
Donc en remplaçant la quote, ou apostrophe américaine, par une apostrophe typographique française.
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.