MySQL PHP 从 MySQL 中显示图片 BLOB
在MySQL中,存储图像的最常见方式是将它们存储为BLOB数据类型。使用PHP,我们可以从MySQL中检索这些图像数据并将它们显示在Web页面中。
阅读更多:MySQL 教程
创建一个包含BLOB列的MySQL表
首先,我们需要创建一个包含BLOB列的MySQL表。以下是一个示例表:
CREATE TABLE `images` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`image` longblob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
将图像插入到MySQL表中
现在,让我们将图像插入到MySQL表中。以下是一个使用PHP的示例:
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 打开要插入的图像
$image = fopen("image.jpg", "rb");
$image_contents = fread($image, filesize("image.jpg"));
fclose($image);
// 将图像插入数据库
$stmt = $conn->prepare("INSERT INTO images (name, image) VALUES (?, ?)");
$stmt->bind_param("sb", $name, $image_contents);
$name = "My Image";
$stmt->execute();
echo "Image inserted successfully!";
$stmt->close();
$conn->close();
从MySQL表中检索图像并显示它们
我们可以使用以下PHP代码从MySQL表中检索图像数据并将它们显示在Web页面上:
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 从数据库检索图像
$sql = "SELECT * FROM images WHERE id=1";
$result = $conn->query($sql);
// 显示图像
if ($result) {
$image = $result->fetch_assoc();
header("Content-type: image/jpg");
echo $image['image'];
}
$conn->close();
以上代码将从指定的MySQL表检索ID为1的图像并将其显示在Web页面上。
总结
在本文中,我们学习了如何在MySQL中存储图像作为BLOB数据类型,并使用PHP从MySQL中检索这些图像并将它们在Web页面中显示出来。这是一个有用的技巧,可以让我们在我们的Web应用程序中使用图像。
极客教程