我将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知道将图像上传到文件更容易,只需保存路径即可。并且已经知道如何做到这一点。然而,我正在尝试一些东西,并希望以这种方式使用。 再次感谢。
答案 0 :(得分:0)
假设您将图像作为字符串,您根本不需要实际转换它,或者担心字符集。看起来你已经过度复杂了。
使用其中一种BLOB类型作为字段类型(BLOB / MEDIUMBLOB等),并确保在插入数据库时转义字符串。这些字段类型不依赖于字符集,而是“BINARY”类型。
如果您正在使用旧的mysql_()函数,请使用mysql_real_escape_string()来转义该值,但如果您正在使用PDO或mysqli_(),则用户准备语句,因为这样可以为您进行转义(简单易用) )。
当你选择时,不需要做任何事情 - 它应该只是起作用。