以下脚本一直在从 MySQL 中的 BLOB 列输出图像很长时间了:
<?
$dbname="usr_web5_1";
$db = new mysqli($dbhost, $dbuser, $dbpwd, $dbname);
$sql = "SELECT foto, fototype, modified FROM `Komplettverzeichnis_extras` WHERE `WPID`= ?";
$stmt = $db->prepare($sql);
$stmt->bind_param("s",$_GET['id']);
if (!$stmt->execute()) $error=true;
$stmt->bind_result($file,$filetype,$modified);
$stmt->fetch();
if (!isset($filetype)) $filetype = "image/jpeg";
if (!$error) {
header("Content-type: $filetype;");
header("Last-Modified: $modified;");
} else {
echo "Error";
echo $db->error;
}
echo $file;
$stmt->close();
$db->close();
}
?>
我尝试将列更改为 LONGBLOB 并用新的 LONGBLOB 列替换它;图像不会显示。这与我尝试显示已经存在的图像还是尝试上传新图像无关。
我发现的最接近的问题是here(德语)。为了改变我使用的列
ALTER TABLE `Komplettverzeichnis_extras` CHANGE `foto` `foto` LONGBLOB DEFAULT NULL
显然,如有必要,我愿意提供更多信息。
我在版本 3.5.2.2、PHP 5.3.17 和 mysql 客户端 API 版本(是 mysql 版本吗?) 5.1.63 中使用 phpMyAdmin。
提前致谢!