Précédent   Forum des professionnels en informatique > Bases de données > Firebird > Débuter
Débuter Forum d'entraide pour débuter avec Firebird
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 24/06/2004, 10h35   #1
Invité régulier
 
Inscription : avril 2004
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 17
Points : 7
Points : 7
Par défaut Liste des caractères que l'on doit échapper lors d'un INSERT

Bonjour à tous,

je travailles en php avec une base interbase.
Mon problème est que avec interbase il n'y a pas de fonction qui me permette d'échapper les caractères qui pourraient poser un problème pour l'insertion ( ou la mise à jour) de données dans la BDD (comme ' qui pose un problème). Donc auriez vous la gentillesse de me donner les caractères qui doivent être échappés (je ne pense pas qu'ils soient nombreux!)

Merci d'avance
Escuzze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2004, 11h10   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Soit j'ai pas compris la question soit vous faites erreur,

Interbase n'a rien à voir avec votre probleme de caractères spéciaux.
C'est un problème générique aux SGBD utilisant le SQL il me semble.

Les champs de type char ou varchar doivent être compris entre deux simples quotes.

Ainsi, si dans votre chaine il y a déjà une simple cote, vous devez la doubler. Dans la plupart des languages il y a une fonction pour réaliser cette transformation par exemple sous Delphi ou BC++ il existe AnsiQuotedStr ou QuotedStr.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2004, 11h20   #3
Invité régulier
 
Inscription : avril 2004
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 17
Points : 7
Points : 7
BA en fait c'était juste pour voir si vous me suiviez...

non en fait j'ai fait erreur en effet

J'ai eu un retour de requête qui m'indiqué une erreur mais en fait c'était à cause du jeux de caractère utilisé (il refuse les accents) mais ca c'est un autre problème.

Merci de m'avoir corrigé.
Escuzze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2004, 11h57   #4
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Ah oui le probleme des accent est différent.

Si vous souhaitez pouvoir utiliser les accents il faut paramétrer quelques petites choses :

1-Déclarer la base (lors de sa création) en disant que le jeux de caractère à utiliser par défaut est le ISO8859_1.
Ou à chaque char et varchar préciser CHARACTER SET ISO8859_1

Code :
1
2
3
4
CREATE DATABASE 'C:\Mesbases\Mabase.GDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET ISO8859_1;
Code :
1
2
3
CREATE DOMAIN MOM_DOMAINE AS
VARCHAR(30) CHARACTER SET ISO8859_1
COLLATE FR_FR;

2-Il faut lors de la connexion également préciser que l'on va utiliser ce jeux de caractère.
Code :
1
2
3
SET SQL DIALECT 3;
SET NAMES ISO8859_1;
CONNECT 'C:\Mesbases\Mabase.GDB' USER 'SYSDBA' PASSWORD 'masterkey';
Par contre je ne saurai pas vous aider pour cette dernière étape en PHP.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2004, 12h13   #5
Invité régulier
 
Inscription : avril 2004
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 17
Points : 7
Points : 7
merci ca suffit amplement à mon bonheur...
Escuzze 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 02h41.


 
 
 
 
Partenaires

Hébergement Web