Pour cela:
- Je droppe la table destinatrice,
- Je recrée la table avec la même définition (clés, index, etc..)
- J'effectue un select d'un côté,
- J'insert les datas dans la table destinatrice fraichement crée.
Pas la peine de philosopher sur la méthode la plus appropriée pour
synchroniser 2 SGBD, ce n'est pas l'objet de ma question.
Lors du select, certains champs textuels contiennent des ' et d'autres
des \'.
Comme vous vous en doutez, l'insertion plante car si j'échappe
systématiqueùment les ', j'obtiens \' et \\'
Comment puisque effectuer l'échappement que des ' sans toucher aux \' ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Gaborit
À (at) Wed, 21 Jun 2006 12:05:06 +0200, Sébastien Cottalorda écrivait (wrote):
Bonjour à tous,
Je dois "synchroniser" 2 SGBDs différentes.
Pour cela: - Je droppe la table destinatrice, - Je recrée la table avec la même définition (clés, index, etc..) - J'effectue un select d'un côté, - J'insert les datas dans la table destinatrice fraichement crée. Pas la peine de philosopher sur la méthode la plus appropriée pour synchroniser 2 SGBD, ce n'est pas l'objet de ma question.
Lors du select, certains champs textuels contiennent des ' et d'autres des '. Comme vous vous en doutez, l'insertion plante car si j'échappe systématiqueùment les ', j'obtiens ' et '
Comment puisque effectuer l'échappement que des ' sans toucher aux ' ?
Les solutions de la meilleure à la pire (de mon point de vue) :
- Demandez-vous si ces champs textuels doivent réellement contenir la séquence '. C'est tout de même assez rare dans du texte...
- Utilisez les placeholders de DBI : il fera le travail pour vous.
- Ajoutez un échapement aux backslashs (qui deviennent donc ) avant d'échapper les apostrophes.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Wed, 21 Jun 2006 12:05:06 +0200,
Sébastien Cottalorda <spp_icarsNOSPAM@yahoo.fr> écrivait (wrote):
Bonjour à tous,
Je dois "synchroniser" 2 SGBDs différentes.
Pour cela:
- Je droppe la table destinatrice,
- Je recrée la table avec la même définition (clés, index, etc..)
- J'effectue un select d'un côté,
- J'insert les datas dans la table destinatrice fraichement crée.
Pas la peine de philosopher sur la méthode la plus appropriée pour
synchroniser 2 SGBD, ce n'est pas l'objet de ma question.
Lors du select, certains champs textuels contiennent des ' et d'autres
des '.
Comme vous vous en doutez, l'insertion plante car si j'échappe
systématiqueùment les ', j'obtiens ' et \'
Comment puisque effectuer l'échappement que des ' sans toucher aux ' ?
Les solutions de la meilleure à la pire (de mon point de vue) :
- Demandez-vous si ces champs textuels doivent réellement contenir
la séquence '. C'est tout de même assez rare dans du texte...
- Utilisez les placeholders de DBI : il fera le travail pour vous.
- Ajoutez un échapement aux backslashs (qui deviennent donc \)
avant d'échapper les apostrophes.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Wed, 21 Jun 2006 12:05:06 +0200, Sébastien Cottalorda écrivait (wrote):
Bonjour à tous,
Je dois "synchroniser" 2 SGBDs différentes.
Pour cela: - Je droppe la table destinatrice, - Je recrée la table avec la même définition (clés, index, etc..) - J'effectue un select d'un côté, - J'insert les datas dans la table destinatrice fraichement crée. Pas la peine de philosopher sur la méthode la plus appropriée pour synchroniser 2 SGBD, ce n'est pas l'objet de ma question.
Lors du select, certains champs textuels contiennent des ' et d'autres des '. Comme vous vous en doutez, l'insertion plante car si j'échappe systématiqueùment les ', j'obtiens ' et '
Comment puisque effectuer l'échappement que des ' sans toucher aux ' ?
Les solutions de la meilleure à la pire (de mon point de vue) :
- Demandez-vous si ces champs textuels doivent réellement contenir la séquence '. C'est tout de même assez rare dans du texte...
- Utilisez les placeholders de DBI : il fera le travail pour vous.
- Ajoutez un échapement aux backslashs (qui deviennent donc ) avant d'échapper les apostrophes.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>