Dans notre application Web, nous utilisons PHP5.2.6 + PDO pour nous connecter à une base de données SQL Server 2005 et stocker des textes en russe.Connexion PHP/PDO et SQL Server et problèmes i18n
Le classement de la base de données est Cyrillic_General_CI_AS
, le classement de la table est Cyrillic_General_CI_AS
, le type de colonne est NVARCHAR(MAX)
.
Nous avons essayé de nous connecter à une base de données en utilisant deux schémas suivants, les deux provoquant des problèmes différents.
AOP MSSQL:
$dbh = new PDO ('mssql:host='.$mssql_server.';dbname='.$mssql_db, $mssql_login, $mssql_pwd);
auquel cas le résultat d'une requête simple comme ça:
SELECT field1 FROM tbl1 WHERE id=1
montre
field1
données tronquées à 255 octets.AOP odbc:
$dbh = new PDO ('odbc:DSN=myDSN;UID='.$mssql_login.';PWD='.$mssql_pwd);
auquel cas un résultat de la même requête affiche complet des données non tronquées, mais avec des points d'interrogation au lieu des symboles russes.
Notes:
- Dans les données SQL Management Studio n'est pas des symboles tronqués et russes sont affichés correctement aussi bien.
- Nous avons Windows 2003 Enterprise Edition SP2
Que devons-nous choisir comme méthode de connexion et comment résoudre les problèmes correspondants?
Merci pour votre réponse, mais le problème est definetely en PHP/AOP - parce que lorsque nous nous connectons à la même base de données .NET, tout fonctionne bien. –