Home > Backend Development > PHP Tutorial > 保存图片指纹(一串乱码)到mysql, 求分析

保存图片指纹(一串乱码)到mysql, 求分析

WBOY
Release: 2016-06-23 14:18:29
Original
948 people have browsed it

本帖最后由 JJ___JJ 于 2013-08-08 15:10:59 编辑

MySQL 乱码

各位大大, 图片指纹如下:

Copy after login

sql为:
 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; 
Copy after login

bitmap字段为varchar 255
很奇怪的一件事, 直接php运行sql, 会报错:
$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
Copy after login


直接copy这段sql去mysql客户端执行, 是没问题的. 目前认为是copy的时候, 这段指纹乱码没有能copy完整, 或者已经变了,
如果不加mysql_real_escape_string, 而是将指纹乱码保存到文本, 是无法copy出来 只能粘贴处部分. 
求大大们帮忙分析, 非常感谢.

回复讨论(解决方案)

大大给点意见啊

保存 base64 编码,可免去一切烦恼

直接保存,则bitmap字段必须为二进制的
但并不保证一定能存储成功

保存 base64 编码,可免去一切烦恼

直接保存,则bitmap字段必须为二进制的
但并不保证一定能存储成功
好的, 谢谢, 我试试.

保存 base64 编码,可免去一切烦恼

直接保存,则bitmap字段必须为二进制的
但并不保证一定能存储成功
感谢版主大大提醒, 已经成功保存到数据库. 取出来也没有问题.
不过bitmap字段为什么必须为二进制的, 我现在保存为char类型, 有问题么, 我看了下结果长度固定, 而且二进制类型向来少用, 所以选择了char类型.

理论上说,数据库是放进去什么,取出来还是什么
但数据库具体实现时为了解决搜索的问题,都做了一些个性化调整
比如 mysql 的字符类型字段 char、varchar、txt 都不区分大小写,都有一个连接校对。这样便于文字的处理
但是二进制内容并不需要数据库干涉,干涉了反而要出问题

字节型可以记录例如 [del] [null] 之类的字节,但字符串就没法记录了,所以要原样保留就要用字节
或者通过可逆编码(base64)把上述不可视字节转为可视字符才能保存,提取是反向解码就是了

理论上说,数据库是放进去什么,取出来还是什么
但数据库具体实现时为了解决搜索的问题,都做了一些个性化调整
比如 mysql 的字符类型字段 char、varchar、txt 都不区分大小写,都有一个连接校对。这样便于文字的处理
但是二进制内容并不需要数据库干涉,干涉了反而要出问题
非常感谢.

字节型可以记录例如 [del] [null] 之类的字节,但字符串就没法记录了,所以要原样保留就要用字节
或者通过可逆编码(base64)把上述不可视字节转为可视字符才能保存,提取是反向解码就是了
谢谢提醒, 已经这样做了.

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template