【发布时间】:2013-10-15 11:20:37
【问题描述】:
是否可以将二进制数据插入 MySQL TEXT 列?我有一个表,我想用它来存储 UTF-8 文本和二进制数据(非常基本的结构 - id int(11), type char(1), data text),但是当我尝试将一些二进制数据(JPEG 图像)插入到 data 列中时,该列为空。
我在 PHP 中使用 mysql_query 和 mysql_real_escape_string 来执行 INSERT 查询,它们都应该是二进制安全的。示例代码:
mysql_query("INSERT INTO my_table VALUES(" . (int)$id . ", 'b', '" . mysql_real_escape_string($jpegImageData) . "')");
我不想将data 列类型更改为BLOB - 在某些情况下,我需要用于比较/整理此列中的字符串。
【问题讨论】:
-
这真的是糟糕的数据库设计的尖叫
-
也许你有一些mysql异常?
echo mysql_error($handle); -
您是否考虑过二进制数据也可能是无效的 UTF-8 的可能性,当您尝试将编码损坏的字符串作为 UTF 存储在数据库中时会导致问题/错误-8?如果您对这些错误感到好奇,请尝试让我知道结果! =]
标签: php mysql sql binary-data