Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
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 10/01/2008, 09h58   #1
Membre du Club
 
Inscription : mars 2006
Messages : 69
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 69
Points : 41
Points : 41
Par défaut Comment échapper Accents/Espaces ?

Salut,

Je voudrais vous poser une question concernant la connexion depuis PHP vers une base de données SQLServer2005, dont quelques tables ont le nom accentué et avec des espaces, et le développement doit être fait de telle façon que les noms ne soient pas changés vers des noms sans accents / espaces. J'obtiens messages d'erreur différent selon la façon que j'emploie pour échapper les caractères (J'ai déjà essayé d'utiliser les caractères "crochet" et "guillement").
Ainsi,
Code :
1
2
$link = mssql_connect ('.\INSTANCE_SQL_SERVER', 'nom', 'password');  
mssql_select_db ("BDD", $link);
Fonctionnent OK.
Mais la ligne suivante donne un résultat différent selon la chaîne $sql que j'utilise:
Code :
$result = mssql_query ($sql, $link);
De telle sorte que:
A) NOM DE LA TABLE AVEC DES ESPACES ET DES ACCENTS
A.1) CROCHETS...
Code :
$sql = "SELECT * FROM [Espaces Accentués]";
Code :
1
2
3
4
Warning: mssql_query() [function.mssql-query]: message: Invalid object name   
'Espaces Accentués'. (severity 16) in C:\xampp\htdocs\pages\monpage.php on line 22  
 
Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp\htdocs\pages\monpage.php on line 22
A.2) GUILLEMENTS...
Code :
$sql = "SELECT * FROM \"Espaces Accentués\"";
Code :
1
2
3
Warning: mssql_query() [function.mssql-query]: message: Incorrect syntax near 'Espaces Accentués'. (severity 15) in C:\xampp\htdocs\pages\monpage.php on line 22  
 
Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp\htdocs\pages\monpage.php on line 22
B) NOM DE LA TABLE AVEC DES ACCENTS MAIS SANS ESPACES
B.1) CROCHETS...
Code :
$sql = "SELECT * FROM [NomAccentué]";
--> Severity 16 comme au-dessous
B.2) GUILLEMENTS...
Code :
$sql = "SELECT * FROM \"NomAccentué\"";
--> Severity 15 comme au-dessous

C) NOM DE LA TABLE AVEC DES ESPACES MAIS SANS ACCENTS
C.1) CROCHETS...
Code :
$sql = "SELECT * FROM [Nom Avec Des Espaces]";
--> OK
C.2) GUILLEMENTS...
Code :
$sql = "SELECT * FROM \"Nom Avec Des Espaces\"";
--> Severity 15 comme au-dessous

Je serai très remerciant de votre aide.
Iván Y. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2008, 10h09   #2
Membre du Club
 
Inscription : mars 2006
Messages : 69
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 69
Points : 41
Points : 41
J'oubliais d'ajouter que si au lieu de * je veux obtenir un champ accentué et avec des espaces, l'échappement via les guillemets fonctionne OK.

Exemple:

Code :
$sql = SELECT \"Champ accentué\" FROM [Nom avec des espaces];
Iván Y. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h28.


 
 
 
 
Partenaires

Hébergement Web