mysql - 插入 Base64Encoded 字符串返回不正确的字符串值 (MySQL)

标签 mysql base64

我正在尝试插入一个 Base64Encoded 字符串,有时它会返回 MySQL 错误:Incorrect string value: '\xFBy\x1Eh\x00...' for column 'Data' at row 1(错误代码: 1366, 状态: HY000)

我运行的查询很简单,例如:

UPDATE Table SET Data='BASE64ENCODED STRING'

但是需要注意的是,不正确的字符串值错误并不总是会发生。如果我再次重复完全相同的查询,它会接受字符串...?

Data-column 的类型为 LONGTEXT 并且具有 utf8mb4_general_ci 排序规则。

连接 也使用 utf8mb4 字符集和 utf8mb4_general_ci 排序规则。

我做错了什么?当我再次运行完全相同的查询时,它怎么可能不抛出错误并插入(更新)值?

我已经检查过base64编码的字符串,其中不包含像这样的字符串:\xFBy\x1Eh\x00

我使用准备好的语句来执行更新

最佳答案

我找到了解决方案。我必须在要插入的字符串前面添加 N 前缀。例如,以下查询:

UPDATE Table SET Data='BASE64ENCODED STRING'

必须更改为:

UPDATE Table SET Data=N'BASE64ENCODED STRING'

关于mysql - 插入 Base64Encoded 字符串返回不正确的字符串值 (MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51265276/

相关文章:

mysql - 我应该使用时间作为组合键的一部分还是创建新的主键?

php - AJAX/MySQL、JavaScript - 数据库和倒计时

php - 更新 MySQL 文本字段行时生成不需要的反斜杠

php - 使用 PHP/MySQL 进行搜索过滤

javascript - 在浏览器中解码 Base64 编码的 PDF 内容

java - 当我使用 String 构造函数将 byte[] 转换为 String 时,SonarCloud 代码有异味

MySQL Workbench 错误代码 : 1074. 列长度对于列来说太大

java - 如何检查输入字符串是否经过编码?

css - 有没有办法在悬停时仅使用 css 制作 base64 编码的背景图像 png 黑白?

javascript - 通过ajax向服务器发送base64图像