Trong ứng dụng web của chúng tôi, chúng tôi sử dụng PHP5.2.6 + PDO để kết nối với cơ sở dữ liệu SQL Server 2005 và lưu trữ văn bản tiếng Nga.Kết nối PHP/PDO và SQL Server và các sự cố i18n
Đồng bộ hóa cơ sở dữ liệu là Cyrillic_General_CI_AS
, bảng đối chiếu là Cyrillic_General_CI_AS
, loại cột là NVARCHAR(MAX)
.
Chúng tôi đã thử kết nối với cơ sở dữ liệu bằng hai sơ đồ sau, cả hai đều gây ra các vấn đề khác nhau.
PDO MSSQL:
$dbh = new PDO ('mssql:host='.$mssql_server.';dbname='.$mssql_db, $mssql_login, $mssql_pwd);
trong trường hợp kết quả của một truy vấn đơn giản như thế đó:
SELECT field1 FROM tbl1 WHERE id=1
lãm
field1
dữ liệu cắt ngắn đến 255 byte.PDO odbc:
$dbh = new PDO ('odbc:DSN=myDSN;UID='.$mssql_login.';PWD='.$mssql_pwd);
trong trường hợp này là kết quả của cùng một truy vấn cho thấy đầy đủ dữ liệu không cắt ngắn nhưng với dấu hỏi thay vì biểu tượng của Nga.
Ghi chú:
- Trong dữ liệu SQL Management Studio không phải là những biểu tượng cắt ngắn và Nga đang hiển thị đúng là tốt.
- Chúng tôi có Windows 2003 Enterprise Edition SP2
Vì vậy, những gì chúng ta nên chọn như một phương pháp kết nối và làm thế nào để sửa chữa các vấn đề tương ứng?
Cảm ơn trả lời của bạn, nhưng vấn đề là definetely trong PHP/PDO - bởi vì khi chúng ta kết nối với cơ sở dữ liệu tương tự ở .NET, mọi thứ đều hoạt động tốt. –