W naszej aplikacji internetowej używamy PHP5.2.6 + PDO do łączenia się z bazą danych SQL Server 2005 i przechowywania tekstów rosyjskich.Połączenie PHP/PDO i SQL Server oraz i18n numer:
Sortowanie bazy danych to Cyrillic_General_CI_AS
, sortowanie według tabeli to Cyrillic_General_CI_AS
, typ kolumny to NVARCHAR(MAX)
.
Próbowaliśmy połączyć się z bazą danych przy użyciu dwóch poniższych schematów, które powodują różne problemy.
PDO mssql:
$dbh = new PDO ('mssql:host='.$mssql_server.';dbname='.$mssql_db, $mssql_login, $mssql_pwd);
w tym przypadku wynika z prostej kwerendy tak:
SELECT field1 FROM tbl1 WHERE id=1
pokazuje
field1
dane obcinane do 255 bajtów.PDO odbc:
$dbh = new PDO ('odbc:DSN=myDSN;UID='.$mssql_login.';PWD='.$mssql_pwd);
w tym przypadku wynika z tego samego zapytania pokazuje pełne dane nie okrojone, ale ze znakami zapytania zamiast rosyjskich symboli.
Uwagi:
- W danych SQL Management Studio to nie obcięte i rosyjskie symbole są wyświetlane poprawnie, jak również.
- Mamy Windows 2003 Enterprise Edition SP2
Więc co powinniśmy wybrać jako metodę połączenia i jak to naprawić odpowiadające problemy?
dzięki za odpowiedź, ale problem jest zdecydowanie w PHP/PDO - bo gdy łączymy się z tej samej bazy danych w .NET, wszystko działa dobrze. –