【发布时间】:2015-05-14 03:16:42
【问题描述】:
我看过很多例子,但我无法正确地回应我正在寻找的内容。我的目标是将 BLOB 转换为 base64 并使用 php 回显 JSON 数组。我知道将图像作为 BLOB 存储在数据库中通常不是正确的方法,但我想这样做只是为了知道如何去做(普遍的共识似乎是存储对图像的引用,而这些引用又被存储在文件系统中是更好的方法)。我也很清楚我的 php 代码中可能存在多个安全问题(对 php 来说非常新)。我只是想知道这个。
这是我的表格的结构: http://s27.postimg.org/lod0ec0er/Screen_Shot_2015_05_13_at_10_49_29_PM.png
这是我的表格的内容: http://s15.postimg.org/joks2fvzv/Screen_Shot_2015_05_13_at_10_51_34_PM.png
这是我的第一次 php 代码尝试(在意识到我必须将 BLOB 转换为 base64 之前):
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT * FROM TestImages";
if($result = mysqli_query($con, $sql))
{
$resultArray = array();
$tempArray = array();
while($row = $result->fetch_object())
{
$tempArray = $row;
array_push($resultArray, $tempArray);
}
echo json_encode($resultArray);
}
mysqli_close($result);
mysqli_close($con);
?>
这是上面代码显示的内容(我认为图像为空,因为 JSON 不能自然地处理 BLOB): http://s2.postimg.org/k2vi3r0ft/Screen_Shot_2015_05_13_at_10_52_06_PM.png
在意识到我必须将 BLOB 转换为 base64 之后,这是我修改后的 php 代码:
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT * FROM TestImages";
if($result = mysqli_query($con, $sql))
{
$resultArray = array();
$tempArray = array();
while($row = $result->fetch_object())
{
$row["image"] = base64_encode($row["image"]);
$tempArray = $row;
array_push($resultArray, $tempArray);
}
echo json_encode($resultArray);
}
mysqli_close($result);
mysqli_close($con);
?>
上面的代码甚至没有产生一个空集。它完全是空白的。我的代码做错了什么?
【问题讨论】: