有事没事来多放点。多放点就越来越专业。
MySQL 5 中 blob 类型字段的插入
上一篇 /
下一篇 2008-03-24 13:35:59
MySQL 4.1 和 MySQL 5 跟 MySQL 4 有一些区别,许多原来在 MySQL 4 上的程序直接移植到 MySQL 4.1 或者 MySQL 5
上时,常常会出现许多问题。因此,一直以来都用 MySQL 4.0,没有升级过,因为原来许多系统在开发时都没有考虑 MySQL 4.1
之后的
数据库。这几天被迫移植一个 3 年前写的一个 CMS 到 MySQL 5
上,字符集转换的那个问题因为在以前开发时遇到过了,因此这个很容易就解决了。那个系统中的
图片和其它附件内容都是保存在数据库中的,用的是 longblob
类型的字段。原来是把文件内容读出来之后,直接用 addslashes 函数转义一下,写入数据库就可以了。但是这次到了 MySQL 5
上居然不好用了。写入文本文件还可以,但是 Word 之类的文档死活写不进去。将 addslashes 换成了 mysql_escape_string 和
mysql_real_escape_string 后还是都不好用。于是心灰意冷,决定把数据导出来,再换到 MySQL 4 上去,数据导出来以后是个 sql
文件,打开一看,发现 longblob 字段在插入时居然是 0xHHHHHHHH... 的形式,于是试着把 addslashes 改称
bin2hex,然后开头再加上 0x,再一试,好了!原来如此啊,这回不用换数据库了,继续用 MySQL 5。我没测试 MySQL 4.1
是否也有这个问题,不过我估计也应该用这种方式才能插入 blob 类型的字段值。
导入论坛
收藏
分享给好友
管理
举报
TAG: