PHP MySql图片数据
我无法显示Mysql数据库中的图像。 我一直在关注所有的例子和其他帖子,但似乎都做不好PHP MySql图片数据,php,html,mysql,Php,Html,Mysql,我无法显示Mysql数据库中的图像。 我一直在关注所有的例子和其他帖子,但似乎都做不好 <?php $db = new PDO('mysql:host=localhost;dbname=MyDatabase;charset=utf8mb4', 'tester', '1234567890'); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_EMUL
<?php
$db = new PDO('mysql:host=localhost;dbname=MyDatabase;charset=utf8mb4', 'tester', '1234567890');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$request = "347";
$mytable = "u55";
$stmt = $db->prepare("SELECT * FROM ".$mytable." WHERE Id = :SearchName ");
$stmt->bindParam(':SearchName', $request, PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
$result = $result[0]['TheAvatar'];
header("Content-Type: image/jpg");
echo '<img src="'.$result.'" />';
?>
然后存储数据的函数是
$mTheAvatar = $input[$i]->TheAvatar;
$mTheDirection= $input[$i]->TheDirection;
$mTheGroup = $input[$i]->TheGroup;
$mTheMedia = $input[$i]->TheMedia;
$mTheMessage = $input[$i]->TheMessage;
$mTheSenderName= $input[$i]->TheSenderName;
$mTheThumbImage = $input[$i]->TheThumbImage;
$mTheTime = $input[$i]->TheTime;
$mTheMediaExtension = $input[$i]->TheMediaExtension;
$statement = $db->prepare('INSERT INTO '.$mDevice.' '.
'(TheAvatar , TheDirection , TheGroup , TheMedia , TheMediaExtension , TheMessage , TheSenderName , TheThumbImage , TheTime) '.
'VALUES (:aTheAvatar, :aTheDirection, :aTheGroup , :aTheMedia, :aTheMediaExtension , :aTheMessage, :aTheSenderName, :aTheThumbImage, :aTheTime)');
try {
$statement->execute(array(
"aTheAvatar" => $mTheAvatar,
"aTheDirection" => $mTheDirection,
"aTheGroup" => $mTheGroup,
"aTheMedia" => $mTheMedia,
"aTheMediaExtension" => $mTheMediaExtension,
"aTheMessage" => $mTheMessage,
"aTheSenderName" => $mTheSenderName,
"aTheThumbImage" => $mTheThumbImage,
"aTheTime" => $mTheTime
));
} catch(PDOException $ex) {
echo "An Error occured!";
echo $ex->getMessage();
die;
}
您可以使用以下代码显示您的图像:
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result ).'"/>';
echo';
分配图像后,您正在覆盖结果对象。是否尝试回显“”;了解如何将图像存储到数据库中会很有用。你能把代码也显示出来吗。最有可能的情况是,您没有正确地将二进制数据存储在文本列中,并期望在一块中全部恢复。尝试使用$mTheAvatar=base64\u encode($input[$i]>TheAvatar)转换图像编码>然后从数据库检索时执行base64\u decode()
插入前编码。在发送到浏览器之前对检索进行解码您可以添加将图像存储到数据库中的代码吗?如果检索到的数据已被错误插入损坏,则尝试使用base64\u encode()
有点晚
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result ).'"/>';