简体   繁体   English

PDO DBLIB SQL 服务器 Unicode 问题

[英]PDO DBLIB SQL Server Unicode issue

When I insert data to SQL Server, latin letters are added as interrogative characters.当我将数据插入 SQL 服务器时,拉丁字母被添加为疑问字符。

Tried lots of ways, but none was helped.尝试了很多方法,但没有任何帮助。 Cannot use N prefix with pdo, when use placeholders.使用占位符时,不能将N前缀与 pdo 一起使用。 Any working ways to set Unicode in pdo?在 pdo 中设置 Unicode 的任何工作方式?

I tried:我试过了:

  1. ini_set('default_charset', 'utf-8');
  2. $dsn = "dblib:version=7.0;charset=UTF-8;host={$params['host']};dbname={$params['dbname']}";
  3. $db->exec("set names utf8");

Solved!解决了!

Instead of placeholders in query write question marks (?) and N prefix will work.代替查询中的占位符写问号 (?) 和 N 前缀将起作用。

Example:例子:

$sql = "UPDATE [dbo].[myTable] SET name=N?, xml_data=? WHERE id=?";
$result = $db->prepare($sql);
return $result->execute(array($name, $xml, $id));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM