Я использую сервер Microsoft SQL Server как базу данных и свой php-код на сервере centos. используя freetds и dblib для подключения от yii framework к mssql.pdo dblib хранимая процедура вставляет неправильные символы
все в порядке. после вставки в db по хранимой процедуре, данные сохранены, но в запросе базы данных у нас есть ??????? в этой колонке NVARCHAR.
мои данные в utf-8 arabic. это моя конфигурация и код:
fretds.conf
[mss]
host = 172.31.1.2
ip = 172.31.1.2
port = 1433
tds version = 7.0
юй Основная конфигурация
'db'=>array(
'connectionString' => 'dblib:host=mss;database=XXXX;charset=utf8',
'username' => 'XXX',
'password' => 'XXXXXXXX',
'charset' => 'utf8',
'tablePrefix' => 'tbl_',
'enableProfiling' => true,
'schemaCachingDuration' => 5 * 60 * 60,
),
моя модель хранимой процедуры
$builder=$this->getCommandBuilder();
$table=$this->getMetaData()->tableSchema;
$command=$builder->createSqlCommand('EXEC dbo.sp_link_comment_insert :link_id, :cmnt_parent_id, :user_id, :cmnt_status, :cmnt_text, :cmnt_thread',
array(
':link_id'=>58829,
':cmnt_parent_id'=>'',
':user_id'=>9,
':cmnt_status'=>1,
':cmnt_text'=>'تست ارسال comment',
':cmnt_thread'=>0,
)
);
$command->execute();
спасибо, но им не используя SQLServer и FreeTDS –
tds version = 7.0 должно быть достаточно. Многие пакеты предварительно сконфигурированы с версией tds = 4.2, особенно con CentOS 6 и Ubuntu 14 LTS –