【问题标题】:PDO DBLIB SQL Server Unicode issuePDO DBLIB SQL Server Unicode 问题
【发布时间】:2019-11-05 20:16:52
【问题描述】:

当我向 SQL Server 插入数据时,拉丁字母被添加为疑问字符。

尝试了很多方法,但没有任何帮助。使用占位符时,不能在 pdo 中使用 N 前缀。在 pdo 中设置 Unicode 的任何工作方法?

我试过了:

  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");

【问题讨论】:

  • 您可以尝试更改驱动程序(SQL Server 的 PHP 驱动程序是一个不错的选择)。
  • 感谢您的回复。但我一开始用的是 pdo。 pdo 没有任何方法可以为 SQL Server 设置 unicode?​​span>

标签: php sql-server pdo


【解决方案1】:

解决了!

代替查询中的占位符写问号 (?) 和 N 前缀将起作用。

例子:

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

【讨论】:

    猜你喜欢
    • 2011-09-21
    • 2013-07-04
    • 2016-05-19
    • 2019-11-18
    • 2015-07-21
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 2015-01-07
    相关资源
    最近更新 更多