php - 将 .mdb 数据插入 SQL 时出现编码问题

标签 php mysql ms-access pdo

我正在尝试将 .mdb 文件的内容(从 Microsoft Access)导出到 MySQL 数据库中。

当我从 .mdb 文件中获取内容并将其回显到页面时,它看起来很好,就像标准文本一样。但是,当我使用 PDO 将其插入数据库时​​,出现不正确的字符串值错误。该字符串在 INSERT 子句中如下所示:

\x41\x44\x20\x2d\x20\x57\x49\x4c\x44\x20\x42\x45\x41\x4e\x20\x43\x41\x46\xc9

我不完全确定为什么会发生这种情况,或者我需要做什么来纠正它。并非所有记录都会发生这种情况,只有部分记录会发生这种情况。

任何指示都会有帮助。

解决方案

由于数据来自 Microsoft Access DB,因此包含在 UTF-8 中无效的 Microsoft Office 特殊字符。所以我用以下函数解析每个字符串。

iconv("cp1252","UTF-8", $str);

最佳答案

某些文本字段中可能有引号或其他特殊字符。在插入之前转义文本

mysqli_real_escape_string($text)
  // or
mysql_real_escape_string($text)

查看实际解决方案

关于php - 将 .mdb 数据插入 SQL 时出现编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26869434/

相关文章:

C# SQL SUM 值到标签

php - MySQL 查询以下内容应该是什么?

PHP/MySQL 连接语法 : Comparing Two Columns in Separate Tables

MySQL 查询从另一个表获取单个项目

python - 在 python 中打开 Access 数据库时出错

ms-access - UTF-8 编码的 MS Access 表

php - 配置 Easyphp 将 htm 文件作为 php 处理

php - 为什么 getPostParameters 在 symfony 1.4 上不起作用?

mysql - 为 Kohana 强制更新表(即使没有可保存的)

javascript - 未定义的查询函数