我正在从 mysql 数据库中获取学生信息,它在用 json 编码包装的数组中打印得很好,但是在学生记录中,当我包含图像时,我在屏幕上什么也没有得到,我需要的是获取所有记录和每个记录的图像. 请帮我 。sql查询中不包含照片时出现的结果
当我在 sql 查询中包含图片时,我的代码如下所示:
public function StudentsOfParent($mobile){
$stmt = $this->conn->prepare("SELECT
a.id,
a.name,
a.mobile,
c.id as sutdentId,
c.user_id,
c.full_name,
c.school,
c.level,
c.year,
c.photo,
d.id as busId,
d.bus_name as plate_no,
e.id as DriverId,
e.driverphone_number,
e.driver_fullname
from users a
join students c
on a.id = c.user_id
join buses d
on c.id = d.student_id
join drivers e
on e.id = d.driver_id where a.mobile= ?");
$stmt->bind_param("i", $mobile);
if ($stmt->execute()) {
$result = $stmt->get_result();
$usersArr = array();
while ($user = $result->fetch_assoc()){
$usersArr[] = $user;
}
$stmt->close();
// echo json_encode($usersArr);
return $usersArr;
} else {
return NULL;
}
}
要访问上述功能,我使用以下 php 文件:
<?php
include './DbHandler.php';
$db = new DbHandler();
// json response array
$response = array("error" => FALSE);
if (isset($_POST['mobile'])){
$mobile = $_POST['mobile'];
$usersArr = $db->StudentsOfParent($mobile);
if ($usersArr != false) {
$response["error"]= FALSE;
$response["user"] = $usersArr;
echo json_encode($response);
}
else {
// user is not found with the credentials
$response["error"] = TRUE;
$response["error_msg"] = "Sorry we could not find you !";
echo json_encode($response);
}
}
else {
// required post params is missing
$response["error"] = TRUE;
$response["error_msg"] = "Required parameter is missing!";
echo json_encode($response);
}
?>
使用此解决方案,我使用了以下函数并将 BLOB 数据放入一个数组中,然后将该数组包装/封装到 Json_encode 中,最后我达到了从 MySQL 显示图像 BLOB 的目标。我现在需要的是在android中解码这个json数组。
我们甚至可以使用以下命令在网络上解码此图像: echo '<img src="data:photo/jpeg;base64,'.base64_encode( $user['photo'] ).'"/><br/>';
这是工作代码:
public function StudentsOfParent($mobile){
$stmt = $this->conn->prepare("SELECT
a.id,
a.name,
a.mobile,
c.id as sutdentId,
c.user_id,
c.full_name,
c.school,
c.level,
c.year,
c.photo,
d.id as busId,
d.bus_name as plate_no,
e.id as DriverId,
e.driverphone_number,
e.driver_fullname
from users a
join students c
on a.id = c.user_id
join buses d
on c.id = d.student_id
join drivers e
on e.id = d.driver_id where a.mobile= ?");
$stmt->bind_param("i", $mobile);
if ($stmt->execute()) {
$result = $stmt->get_result();
$usersArr = array();
while ($user = $result->fetch_assoc()){
$usersArr[] = $user['id'];
$usersArr[] = $user['name'];
$usersArr[] = $user['mobile'];
$usersArr[] = $user['sutdentId'];
$usersArr[] = $user['user_id'];
$usersArr[] = $user['full_name'];
$usersArr[] = $user['school'];
$usersArr[] = $user['level'];
$usersArr[] = $user['year'];
$usersArr[] = base64_encode($user['photo']);
$usersArr[] = $user['busId'];
$usersArr[] = $user['plate_no'];
$usersArr[] = $user['DriverId'];
$usersArr[] = $user['driverphone_number'];
$usersArr[] = $user['driver_fullname'];
// echo '<img src="data:photo/jpeg;base64,'.base64_encode( $user['photo'] ).'"/><br/>';
}
$stmt->close();
// echo json_encode($usersArr);
return $usersArr;
} else {
return NULL;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句