В нашем веб-приложении мы используем PHP5.2.6 + PDO для подключения к базе данных SQL Server 2005 и хранения русских текстов.
Сортировка базы данных Cyrillic_General_CI_AS
, сортировка таблицы Cyrillic_General_CI_AS
, тип столбца NVARCHAR(MAX)
.
Мы попытались подключиться к базе данных по двум следующим схемам, каждая из которых вызывала различные проблемы.
ЗОП mssql:
$dbh = new PDO ('mssql:host='.$mssql_server.';dbname='.$mssql_db, $mssql_login, $mssql_pwd);
в этом случае результат простого запроса, подобного этому:
SELECT field1 FROM tbl1 WHERE id=1
показывает field1
данные, усеченные до 255 байтов.
PDO odbc:
$dbh = new PDO ('odbc:DSN=myDSN;UID='.$mssql_login.';PWD='.$mssql_pwd);
В этом случае результат того же запроса показывает полные не усеченные данные, а с русскими знаками вместо русских символов.
Примечания:
- В SQL Management Studio данные не усекаются, и русские символы также отображаются правильно.
- У нас есть Windows 2003 Enterprise Edition SP2
Так что мы должны выбрать в качестве метода подключения и как исправить соответствующие проблемы?