将BLOB图像转换为二进制值

时间:2012-10-10 02:53:03

标签: php sql binary phpmyadmin

我将phpadmin数据库中的图像上传到blob类型的列图像中。因此我想选择图像的二进制代码,所以我这样做

SELECT CONVERT( `image` 
USING binary ) AS image
FROM `license` 
WHERE `l_name` = 'lamen'
LIMIT 0 , 30

结果与我正在寻找的相似,但我不认为我得到纯二进制,因为它返回此。

PNG \ r \ n \Ž\ n \ 0 \ 0 \ 0 \ rIHDR \ 0 \ 0 \ 0小时\ 0 \ 0 \ 0F \ B \ 0 \ 0 \ 0tC \ 0 \ 0 \ 0sRGB \ 0 \ 0 \ 0 \ 0gAMA \ 0 \ 0 UT + MTQK + K(\ r \ 0 \ 0 \ 0 \ 0IENDB`

只是一堆乱七八糟的东西。我删除了很多行,导致它只是这个相似的代码。

但是。如果我说      SELECT CONVERT( {图像{1}}授权 USING binary) as image from {l_name {1}}

它返回图像并在其下[BLOB-413字节]

如果我点击它,我会

where授权='lamen' {图像{1}}

我怀疑是我想要的...但是...即使我说,也无法让我的select语句返回该代码 SELECT * FROM

Thansk寻求帮助

PS.I知道将图像上传到文件更容易,只需保存路径即可。并且已经知道如何做到这一点。然而,我正在尝试一些东西,并希望以这种方式使用。 再次感谢。

1 个答案:

答案 0 :(得分:0)

假设您将图像作为字符串,您根本不需要实际转换它,或者担心字符集。看起来你已经过度复杂了。

使用其中一种BLOB类型作为字段类型(BLOB / MEDIUMBLOB等),并确保在插入数据库时​​转义字符串。这些字段类型不依赖于字符集,而是“BINARY”类型。

如果您正在使用旧的mysql_()函数,请使用mysql_real_escape_string()来转义该值,但如果您正在使用PDO或mysqli_(),则用户准备语句,因为这样可以为您进行转义(简单易用) )。

当你选择时,不需要做任何事情 - 它应该只是起作用。