使用PHP在前端显示BLOB文件

问题描述 投票:-1回答:2

我有一张名为listing_fees的桌子

我想通过id12获取数据

我想得到的数据是BLOB,名为[BLOB - 205B]

BLOB文件中是一个这样的数组:

a:7:{s:2:"id";s:1:"1";s:5:"label";s:8:"For Sale";s:6:"amount";s:4:"0.00";s:4:"days";s:1:"7";s:6:"images";s:1:"0";s:10:"categories";a:2:{s:3:"all";i:0;s:10:"categories";a:1:{i:0;i:30;}}s:10:"extra_data";N;}

我对这段代码不了解。

我想用PHP在html的前端显示它

我将展示它什么?

SQL查询或其他。

php mysql blob
2个回答
3
投票

该数据在PHP Serialized format,您可以使用unserialize解码它

$data = 'a:7:{s:2:"id";s:1:"1";s:5:"label";s:8:"For Sale";s:6:"amount";s:4:"0.00";s:4:"days";s:1:"7";s:6:"images";s:1:"0";s:10:"categories";a:2:{s:3:"all";i:0;s:10:"categories";a:1:{i:0;i:30;}}s:10:"extra_data";N;}';
$data = unserialize($data);

echo "<pre>" ;
foreach ( $data as $key => $value ) {
    if ($key == 'categories') {
        echo $key, " = ", $value['categories']['0'], PHP_EOL;
    } else {
        echo $key, " = ", $value , PHP_EOL;
    }
}

产量

id = 1
label = For Sale
amount = 0.00
days = 7
images = 0
categories = 30
extra_data = 

1
投票

BLOB列中的数据似乎是序列化数据,而不是文件。因此,你不想只是“输出”它到页面 - 你想要反序列化它(通过PHP的unserialize()方法),然后处理显示,但是应该显示它。获取您在问题中显示的确切数据并使用unserialize()传递给我一个包含以下内容的数组:

Array
(
    [id] => 1
    [label] => For Sale
    [amount] => 0.00
    [days] => 7
    [images] => 0
    [categories] => Array
        (
            [all] => 0
            [categories] => Array
                (
                    [0] => 30
                )

        )

    [extra_data] =>
)

查询数据库和检索列的简单设置是:

$mysqli = new mysqli('localhost', 'username', 'password', 'db');
$result = $mysqli->query('SELECT column_name FROM listing_fees WHERE id = 12');
$data = $result->fetch_assoc();
$result->close();

要使用$data数组中的数据,您可以执行以下操作:

$blob = unserialize($data['column_name']);

现在,您可以显示所需的数据,使用$blob['label']$blob['days']访问每个值。

© www.soinside.com 2019 - 2024. All rights reserved.