MS-SQL: не записывается кириллица в поле типа text

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
bombadile
Сообщения: 12
Зарегистрирован: 2016.06.30, 17:36

MS-SQL: не записывается кириллица в поле типа text

Сообщение bombadile »

Есть поле в MS-SQL, кодировка windows-1251, тип text. Через activeRecord добавляется значение поля "адрес" (кириллица), формируется такой запрос:
INSERT INTO [Orders] [Address]) VALUES (0xc8ecff20d4e0ece8ebe8ff20cef2f7e5f1f2e2ee)

Появляется ошибка: "Конфликт типа операндов: varbinary несовместим с text". На типе varchar все норм. Что делать?
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: MS-SQL: не записывается кириллица в поле типа text

Сообщение jakiro »

Забыть про windows-1251 как про стрышный сон и начать использовать UTF-8
bombadile
Сообщения: 12
Зарегистрирован: 2016.06.30, 17:36

Re: MS-SQL: не записывается кириллица в поле типа text

Сообщение bombadile »

jakiro писал(а):Забыть про windows-1251 как про стрышный сон и начать использовать UTF-8
К сожалению, это невозможно :) Еще варианты есть?
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: MS-SQL: не записывается кириллица в поле типа text

Сообщение Nerf »

Какая версия mssql, какой драйвер?
Был проект, в котором частично использовался mssql 2005. C драйвером от мелкомягких(sqlsrv) локально под виндовс проблем нету, он сам все делает. На продакшене с левым драйвером все запросы перегонялись в cp1251. Только там не было AR, запросы были с createCommand(), т.к. там в основном были вызовы процедур.

Можете покопать в этом направлении. Либо нужные данные конвертировать, либо что-то в yii\db\Command переопределить и прокинуть в настройки подключения.
bombadile
Сообщения: 12
Зарегистрирован: 2016.06.30, 17:36

Re: MS-SQL: не записывается кириллица в поле типа text

Сообщение bombadile »

У PDO на PHP7 такой баг. Откатились на php5.
Ответить