-1

我有一张名为listing_fees

我想通过idof获取数据12

我想要获取的数据是一个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 查询或其他东西。

4

2 回答 2

3

该数据采用PHP 序列化格式,您可以使用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 = 
于 2012-10-04T02:04:52.350 回答
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']

于 2012-10-04T02:04:35.313 回答