Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & Oracle
PHP & Oracle Forum d'entraide sur Oracle avec PHP. Avant de poster -> FAQ Oracle et Cours Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/04/2008, 15h32   #1
Membre régulier
 
Inscription : août 2005
Messages : 342
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 342
Points : 76
Points : 76
Envoyer un message via MSN à akrogames
Par défaut Texte avec accent et quote

Bonjour,

J'ai un petit soucis au niveau des accents et des caractères suivant: ' " etc...

Je vous explique:

J'ai une base de données Oracle et je souhaite insérer un texte par exemple: "Bonjour l'orangé" dans un champ de type VARCHAR2(30)

Le problème il refuse les accents et le ' et je ne souhaite pas convertir en HTML dans la base de données....

Si vous avez une idée je suis preneur.

Thibaud
akrogames est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 17h30   #2
Membre habitué
 
Homme
Développeur Web
Inscription : mars 2007
Messages : 117
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Service public

Informations forums :
Inscription : mars 2007
Messages : 117
Points : 116
Points : 116
bonjour,

peut tu montrer ta ligne d'enregistrement.
Si tu veux, bien sur.

Yasen77
yasen77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 08h10   #3
Membre régulier
 
Inscription : août 2005
Messages : 342
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 342
Points : 76
Points : 76
Envoyer un message via MSN à akrogames
Bonjour !

Merci pour ta réponse attend je te montre la ligne :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
		//On vérifie les informations rentré
		if($codemp==""||$libemp==""||$adremp==""||$abgemp==""||$typeemp=="") {
			header('Location: statut.php?erreur=9&popup=1');
		}
 
		$date = date("d-M-y");
 
		//On insère dans la base de données
		$sql="INSERT INTO TEMPLACE VALUES('$codemp','$libemp','$adremp','$abgemp','$codcom','$typeemp','$date')";
		ora_query($sql,$ora_conn);
Il n'accepte pas les accent et les quotes .... donc cela pose problème quand je veux rentrer un texte mais je pense qu'il y a une fonction en SQL pour sa mais je ne la connais pas.

Merci a bientot !

Thibaud
akrogames est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 09h56   #4
Membre habitué
 
Homme
Développeur Web
Inscription : mars 2007
Messages : 117
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Service public

Informations forums :
Inscription : mars 2007
Messages : 117
Points : 116
Points : 116
Bonjour,

essaye plutot comme ca :

Code :
1
2
3
		//On insère dans la base de données
		$sql="INSERT INTO TEMPLACE VALUES(\"$codemp\",\"$libemp\",\"$adremp\",\"$abgemp\",\"$codcom\",\"$typeemp\",\"$date\")";
		ora_query($sql,$ora_conn);
pour faire simple, si tu a une quote dans ta variable, php, considère que s'est la fin de ton champ.

Yasen77
yasen77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 10h22   #5
Membre régulier
 
Inscription : août 2005
Messages : 342
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 342
Points : 76
Points : 76
Envoyer un message via MSN à akrogames
Re,

Alors oui je pense que ta solution est bonne mais il me fait une petite erreur:

Code :
Erreur dans le parsing de la requête. Error was :ORA-00984: column not allowed here -- while processing OCI function OPARSE

Pourtant j'ai vérifié il y a bien le même nombre de colonne que dans ma table...


Erf si tu vois quelque chose de bizarre...

merci de ton aide
akrogames est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 10h34   #6
Membre habitué
 
Homme
Développeur Web
Inscription : mars 2007
Messages : 117
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Service public

Informations forums :
Inscription : mars 2007
Messages : 117
Points : 116
Points : 116
je suis pas spécialiste oracle, je travail avec mysql,

mais j'ais trouvé ca sur le net, si ca peut t'aider.

ORA-00984
ORA-00984: column not allowed here

Cause: A column name was used in an expression where it is not permitted, such as in the VALUES clause of an INSERT statement.

Action: Check the syntax of the statement and use column names only where appropriate.

yasen77
yasen77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 10h41   #7
Membre habitué
 
Homme
Développeur Web
Inscription : mars 2007
Messages : 117
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Service public

Informations forums :
Inscription : mars 2007
Messages : 117
Points : 116
Points : 116
en cherchant un peu, ca pourrais venir des ".

essaye ca alors :

Code :
1
2
3
		//On insère dans la base de données
		$sql="INSERT INTO TEMPLACE VALUES(\'$codemp\',\'$libemp\',\'$adremp\',\'$abgemp\',\'$codcom\',\'$typeemp\',\'$date\')";
		ora_query($sql,$ora_conn);
mais sans grande conviction

je regarde encore

yasen77
yasen77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 10h44   #8
Membre régulier
 
Inscription : août 2005
Messages : 342
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 342
Points : 76
Points : 76
Envoyer un message via MSN à akrogames
Alors là j'ai cette erreur:

Code :
1
2
 
Erreur dans le parsing de la requête. Error was :ORA-00911: invalid character -- while processing OCI function OPARSE

Je cherche en même temps que toi sur le net mais je trouve rien de concret sur les quotes dans un champ....
akrogames est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 10h50   #9
Membre habitué
 
Homme
Développeur Web
Inscription : mars 2007
Messages : 117
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Service public

Informations forums :
Inscription : mars 2007
Messages : 117
Points : 116
Points : 116
essaye ceci :

Code :
1
2
3
		//On insère dans la base de données
		$sql="INSERT INTO TEMPLACE VALUES(\"".$codemp."\",\"".$libemp."\",\"".$adremp."\",\"".$abgemp."\",\"".$codcom."\",\"".$typeemp."\",\"".$date."\")";
		ora_query($sql,$ora_conn);
yasen77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 10h53   #10
Membre régulier
 
Inscription : août 2005
Messages : 342
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 342
Points : 76
Points : 76
Envoyer un message via MSN à akrogames
Erf,

Code :
Erreur dans le parsing de la requête. Error was :ORA-00984: column not allowed here -- while processing OCI function OPARSE
je comprend pas sa aurait du marché pourtant.....



bon bah on va essayer autre chose a toute

Si tu a d'autres pistes n'hésite pas et merci yassen de t'accorder un peu de temps pour moi
akrogames est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 11h24   #11
Membre habitué
 
Homme
Développeur Web
Inscription : mars 2007
Messages : 117
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Service public

Informations forums :
Inscription : mars 2007
Messages : 117
Points : 116
Points : 116
j'ai chercher, et je croit que j'ai trouvé.

tu garde ton enregistrement d'origine:

Code :
1
2
3
		//On insère dans la base de données
		$sql="INSERT INTO TEMPLACE VALUES('$codemp','$libemp','$adremp','$abgemp','$codcom','$typeemp','$date')";
		ora_query($sql,$ora_conn);
mais tu ajoute avant pour tes variables

Code :
$codemp = str_replace("'", "''",$codemp);
essaye ceci, a priori, se serai ca.

Yasen77
yasen77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 11h29   #12
Membre régulier
 
Inscription : août 2005
Messages : 342
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 342
Points : 76
Points : 76
Envoyer un message via MSN à akrogames
Bingo

Tu gère yassen77
Merci beaucoup.

Il y a quand même quelque chose qui me turlupine....

cela change quoi de mettre deux '' à la place de un ' ??
akrogames est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 11h39   #13
Membre habitué
 
Homme
Développeur Web
Inscription : mars 2007
Messages : 117
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Service public

Informations forums :
Inscription : mars 2007
Messages : 117
Points : 116
Points : 116
en fait, l'ajout de deux quote, correspond a un addslashes en php ( \' ).

content, que cela fonctionne.

Yasen
yasen77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 11h47   #14
Membre régulier
 
Inscription : août 2005
Messages : 342
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 342
Points : 76
Points : 76
Envoyer un message via MSN à akrogames
Ah oki je ne savais pas que '' correspondais à \' Merci Yassen
akrogames est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h46.


 
 
 
 
Partenaires

Hébergement Web