MySQL PHP 从 MySQL 中显示图片 BLOB

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应用程序中使用图像。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程