从BLOB获取部分数据为十六进制

时间:2014-01-29 21:16:41

标签: php mysql blob

我有一个很长的二进制文件写入MySQL长期BLOB。 当我通过我的PHP应用程序从DB读回BLOB时,我想将前12个字节仅作为十六进制。 我使用bin2hex(BLOB)成功地将BLOB转换为十六进制,但不知道如何忽略前12个字节的数据。

1 个答案:

答案 0 :(得分:4)

你在寻找这个吗?

SELECT HEX(LEFT(data, 12)) partial
  FROM table1

这是 SQLFiddle 演示

The BLOB and TEXT Types

  

BLOB值被视为二进制字符串(字节字符串)。

因此,您可以使用LEFT()获取前12个字节,然后使用HEX()转换它们


我相信Codeigniter你可以做这样的事情

$result = $this->db
               ->select('HEX(LEFT(data, 12)) AS partial', FALSE)
               ->from('table1')
               ->get();