{Oracle} Enregistrer un lien dans un base oracle [Résolu/Fermé]

Signaler
Messages postés
19
Date d'inscription
jeudi 14 janvier 2010
Statut
Membre
Dernière intervention
26 novembre 2011
-
 Tom -
Bonjour,

Je souhaite enregistrer un lien de google map dans une base de données Oracle.

Le lien est celui-ci :

<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http:/maps.google.fr/maps?f=q&amp;source=s_q&amp;hl=fr&amp;geocode=&amp;q=Rue+du+Champ+de+Mars,+75007+Paris%E2%80%8E&amp;sll=48.858204,2.294359&amp;sspn=0.04207,0.072699&amp;ie=UTF8&amp;hq=&amp;hnear=Rue+du+Champ+de+Mars,+75007+Paris,+Ile-de-France&amp;ll=48.864207,2.309103&amp;spn=0.010518,0.018175&amp;z=14&amp;iwloc=A&amp;output=embed"></iframe><br /><small><a href="htp://maps.google.fr/maps?f=q&amp;source=embed&amp;hl=fr&amp;geocode=&amp;q=Rue+du+Champ+de+Mars,+75007+Paris%E2%80%8E&amp;sll=48.858204,2.294359&amp;sspn=0.04207,0.072699&amp;ie=UTF8&amp;hq=&amp;hnear=Rue+du+Champ+de+Mars,+75007+Paris,+Ile-de-France&amp;ll=48.864207,2.309103&amp;spn=0.010518,0.018175&amp;z=14&amp;iwloc=A" style="color:#0000FF;text-align:left">Agrandir le plan</a></small>


Je fais la requête suivante pour l'enregistrer :

UPDATE etablissement
SET plan = 'le lien tel qu'il est au dessus'
WHERE id = 1;


Et le message qui apparaît est le suivant :
"Entrez une valeur pour amp : "

J'ai tout essayé de changer le type du champ 'plan' mais rien.
J'ai doublé les apostrophes, mis dans anti slash ... rien de fonctionne ...

Si quelqu'un a une petite idée du souci ... Merci d'avance .

En espérant avoir été assez claire dans l'explication du souci.

PS: j'ai enlever dans les liens http un slash pour que tout s'affiche entièrement ici sur le forum !

1 réponse

Messages postés
19
Date d'inscription
jeudi 14 janvier 2010
Statut
Membre
Dernière intervention
26 novembre 2011
1
Problèmes résolu !!

Si jamais quelqu'un a le même souci :

le caractère qui bloquait ma requête est "&" donc après des heures de recherche j'ai finis par trouver la solution.

Il faut le remplacer par CHR(38) qui le met sous forme ASCII mais dans la requête il faut faire comme ceci :

pour le mot par exemple 'Fanny & Morganne' il faut le coder ainsi : 'Fanny ' || CHR(38) || ' Morganne'.

J'utilise le || (alt Gr + 6) pour concaténer le texte 1 et le texte 2.

Pour mon cas j'ai fais un formulaire où l'utilisateur pouvait me copier le lien du plan souhaité sans rien changer. Je recupère le champ grâce à la méthode $_POST et avant de mettre le champ dans ma requête je fais ceci :

=> Pour doubler les apostrophes :
$plan = str_replace("'","''",$_POST['plan']);

=> Pour remplacer les & par la chaine que je vous ai cité plus haut.
$plan = str_replace("&","' || CHR(38) || '",$plan);

Et voilà maintenant tout fonctionne !!!

En espérant avoir pu aider quelques personnes.
Il suffit de taper : set scan off sous Oracle
Bonne journée