从数据库中选择blob / image将返回NULL

时间:2014-05-11 18:33:10

标签: php json blob

以下是我将图像推送到数据库的代码:

$title = $_REQUEST['title'];
$description = $_REQUEST['description'];
$image = $_REQUEST['image'];
$bdata = addslashes($image);

$query = "insert into Images (title, description, image) values ($title, $description, '$bdata')" or die("Error in the consult.." . mysqli_error($connection));

$result = $connection->query($query);
$connection->close();

我在数据库中双重检查并成功存储。

这是从表中获取数据的代码:

$query = "select * from Images" or die("Error in the consult.." . mysqli_error($connection));
$result = $connection->query($query);
$events = array();

while ($event = $result->fetch_array(MYSQLI_ASSOC)) {       

    $events[] = $event;
}

header('Content-type: application/json');

echo json_encode($events);

$result->free();
$connection->close();

结果我收到了下一个json:

{
id: "34",
title: "some image",
description: "some description",
image: null
}

如您所见,“image”字段为空。在phpAdmin中,我看到有一个数据。

1 个答案:

答案 0 :(得分:1)

首先:使用prepared statements摆脱烦人的SQL injection


JSON对二进制数据没有原生支持:

  

值可以是双引号或数字,或true或false或null,或对象或数组的字符串。

使用Base64BSONSmileUBJSON之类的内容。另见:Binary Data in JSON String. Something better than Base64