以下是我将图像推送到数据库的代码:
$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中,我看到有一个数据。
答案 0 :(得分:1)
首先:使用prepared statements摆脱烦人的SQL injection。
JSON对二进制数据没有原生支持:
值可以是双引号或数字,或true或false或null,或对象或数组的字符串。
使用Base64,BSON,Smile或UBJSON之类的内容。另见:Binary Data in JSON String. Something better than Base64