【问题标题】:display blob PNG image from MySQL显示来自 MySQL 的 blob PNG 图像
【发布时间】:2013-06-13 14:48:34
【问题描述】:

我正在使用 jquery mobile 构建一个 webapp,我一直在尝试显示来自 MySQL DB 的 BLOB PNG 图像,但没有成功。我想知道我做错了什么。

这是我的 popup_data.php

<?php
$con = mysqli_connect('127.0.0.1','root' , '' , 'parkinglot');
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$index_data = 1;
$tables = "show tables";
$result = mysqli_query($con,$tables);

while($row = mysqli_fetch_array($result,MYSQLI_NUM))
{    
    echo '
    <div data-role="popup" id="mapdata'.$index_data.'" class="ui-content" data-theme="a"> ';

    echo '<img src="showimage.php?sensor_num='.$index_data.'" />'; //sensor_num is to retrieve the image with that ID

    echo '    
    </div>
    ';
$index_data++;
};
?>

这是我的 showimage.php

<?php
$con = mysqli_connect('127.0.0.1','root' , '' , 'parkinglot');

// CHECK CONNECTION
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sensor_num = (isset($_GET['sensor_num']) && is_numeric($_GET['sensor_num'])) ? intval($_GET['sensor_num']) : 0;

$data = "SELECT * FROM $table_name2 WHERE sensor_num=$sensor_num";
$result2 = mysqli_query($con,$data);

while ($row2 = mysqli_fetch_array($result2))
{
   $imgData = $row2['picture'];
}
header('Content-Type: image/png');
echo $imgData;
?>

【问题讨论】:

  • 到底是什么问题?图像不显示? SQL 查询是否失败?
  • 您还应该考虑到,如果您的 $sensor_num 为 0,您应该返回 404 标头,而不是查询数据库中的 sensor_num=0,或者如果存在 mysql 错误并记录错误。考虑使用Output Control 以确保仅传递预期的标头/内容。
  • 问题是图片没有显示出来。

标签: php mysql blob


【解决方案1】:

$data = "SELECT * FROM $table_name2 WHERE sensor_num=$sensor_num";

您没有在 showimage.php 中的任何位置设置$table_name2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    相关资源
    最近更新 更多