【发布时间】:2018-03-18 11:35:39
【问题描述】:
我正在使用 json 和 php 来显示我的数据库的内容,这一直有效,直到我在数据库中实现了一个 blob 值以存储我的图片,现在当我运行页面时它不显示数据,我正在使用的代码如下
library2 页面
<?php
ini_set("display_errors",1);
error_reporting(E_ALL);
function getAllPictures() {
// include the login credentials
include ("loginasdf.php") ;
// connect to the database to get current state
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) { die("Connection failed: " . mysqli_connect_error());
echo "fail"; }
$sql = "SELECT * FROM Pictures" ;
$result = mysqli_query($conn, $sql);
// convert to JSON
$rows = array();
while($r = mysqli_fetch_assoc($result)) {
$rows[] = $r;
}
var_dump($rows);
return json_encode($rows);
}
显示页面
<?php
include("library2.php") ;
$picturetxt = getAllPictures() ;
$picturejson = json_decode($picturetxt) ;
$cl = $picturejson;
for ($i=0 ; $i<sizeof($cl) ; $i++) {
echo "<a href=displaycontact2.php?id=" ;
echo $cl[$i] -> id ;
echo ">" ;
echo $cl[$i] -> hname ;
echo "</a><br/>" ;
echo "</a><br/>" ;
echo "ID: ";
echo $cl[$i] -> ID;
echo "<br/>";
echo "Name: ";
echo $cl[$i] -> hname;
echo "<br/>";
echo "Image: ";
?>
<html>
<img src=himage alt="himage" style="width:304px;height:228px;">
</html>
<?php
}
?>
【问题讨论】:
-
当您转储 $rows 时,您希望看到什么?该“blob”是图像的二进制数据,正是您所描述的。如果你想通过
json_encode传输它,你可能需要先base64_encode这个blob,然后在收到它之后base64_decode它...... -
我看不出您实际上是在哪里尝试在代码中使用 blob 数据。我什至在您的帖子中也没有看到任何问题。
-
@cale_b 问题是当我尝试显示页面为空白的数据时
-
@PatrickQ 问题是当我尝试显示页面为空白的数据时
-
疑难解答:逐一检查代码的每个部分。你知道
var_dump( $rows)做了什么——现在试试var_dump( $picturetxt );,然后是var_dump($cl);,等等,直到你看到哪里出了问题/没有工作。