Home > Article > Backend Development > 保存图片指纹(一串乱码)到mysql, 求分析
MySQL 乱码
各位大大, 图片指纹如下:update test set `bitmap` ='?+W&+N{|\0Ox0\\$8)sld\"Z|y|\0ZZ!\0]P!Zw\Z\Zgm|p\"y^W|)Q,\0xc{\0\Z\\[#]pEXcto[ER`\'l{b&8P8j[w1y^t|d0YSMK![sj\0Kyww7)PE\ZIPv^m|\0\0\0{\0PK^\0y|x-e^|jcxc|`N' where id = 168;
$query = "update test set `bitmap` ='".mysql_real_escape_string($bitmap)."' where id = {$picture['id']};";1366: Incorrect string value: '\xDD[+W&+...' for column 'bitmap' at row 1
大大给点意见啊
保存 base64 编码,可免去一切烦恼
直接保存,则bitmap字段必须为二进制的
但并不保证一定能存储成功
保存 base64 编码,可免去一切烦恼
直接保存,则bitmap字段必须为二进制的
但并不保证一定能存储成功
好的, 谢谢, 我试试.
保存 base64 编码,可免去一切烦恼
直接保存,则bitmap字段必须为二进制的
但并不保证一定能存储成功
感谢版主大大提醒, 已经成功保存到数据库. 取出来也没有问题.
不过bitmap字段为什么必须为二进制的, 我现在保存为char类型, 有问题么, 我看了下结果长度固定, 而且二进制类型向来少用, 所以选择了char类型.
理论上说,数据库是放进去什么,取出来还是什么
但数据库具体实现时为了解决搜索的问题,都做了一些个性化调整
比如 mysql 的字符类型字段 char、varchar、txt 都不区分大小写,都有一个连接校对。这样便于文字的处理
但是二进制内容并不需要数据库干涉,干涉了反而要出问题
字节型可以记录例如 [del] [null] 之类的字节,但字符串就没法记录了,所以要原样保留就要用字节
或者通过可逆编码(base64)把上述不可视字节转为可视字符才能保存,提取是反向解码就是了
理论上说,数据库是放进去什么,取出来还是什么
但数据库具体实现时为了解决搜索的问题,都做了一些个性化调整
比如 mysql 的字符类型字段 char、varchar、txt 都不区分大小写,都有一个连接校对。这样便于文字的处理
但是二进制内容并不需要数据库干涉,干涉了反而要出问题
非常感谢.
字节型可以记录例如 [del] [null] 之类的字节,但字符串就没法记录了,所以要原样保留就要用字节
或者通过可逆编码(base64)把上述不可视字节转为可视字符才能保存,提取是反向解码就是了
谢谢提醒, 已经这样做了.