【发布时间】:2014-10-02 07:29:24
【问题描述】:
如何将存储在 mySQL 数据库中的图像显示为 BLOB? 到目前为止它尝试了什么: 1.创建一个新的php函数/文件来获取图片(getpicture.php)。 2.在html中,我有如下代码:
<img src="getpicture.php?id=2" border ="0" height="250" width="250" />
/*below is the getpicture.php*/
<?php
@ $db = new MySQLi('localhost','root','','myDatabase');
if(mysqli_connect_errno()) {
echo 'Connection to database failed:'.mysqli_connect_error();
exit();
}
if(isset($_GET['People_Id'])) {
$id = mysqli_real_escape_string($_GET['People_Id']);
$query = mysqli_query("SELECT * FROM 'people' WHERE 'People_Id' = '$id'");
while($row = mysqli_fetch_assoc($query)) {
$imageData =$row['image'];
}
header("content-type: image/jpeg");
echo $imageData;
echo $id;
}
else {
echo "Error!";
echo $id;
}
?>
代码有什么问题?请帮忙!
【问题讨论】:
-
您将表和列视为值;删除引号。
-
这个
SELECT * FROM 'people' WHERE 'People_Id'去掉所有的单引号或者使用反引号` -
如果
People_Id是一个数字字段,也删除'$id'中的引号。 -
您也没有将数据库连接传递给您的
$id -
而
mysqli_real_escape_string确实不阻止注入,你的代码很容易受到攻击。请改用准备好的语句。