使用MySQL储存图片轻松搞定(c mysql储存图片)
使用MySQL储存图片轻松搞定
在现今互联网的应用中,图片存储已经成为了一个非常重要的环节。因此,网站需要一个优秀的图片存储方案来对用户上传的图片进行存储和管理。当然,磁盘存储已经成为了最常使用的方式。但是,磁盘存储也有缺点,例如读取速度慢,缺乏统一的控制,不易维护等。
MySQL的优点
因此,MySQL数据库已经成为了一个很好的选择。MySQL有很多优点,例如,读写速度非常快,支持事物处理等。同时,MySQL也因其卓越的表现,万能的性能、灵活性和可插拔安全性而成为业界的领导者之一。
但是,MySQL并不是天生就是用来存储图片的。在MySQL上储存图片的方式,往往需要使用二进制数据的方式进行存储。将图片文件转换为二进制格式,然后再将转化后的数据存储到MySQL数据库中。并不是所有的程序员都对二进制数据非常熟练,这给使用MySQL储存图片带来了一定的困难。
图片转换及存储的步骤
下面,将简单介绍如何使用MySQL数据库存储图片。
1. 创建一个数据库用来存储图片。我们可以使用下面的SQL语句创建一个名为“myimages”的数据库:
CREATE DATABASE myimages;
2. 在该表中创建一个用于存储图片的表。我们可以使用下面的SQL语句创建一个名为“img_table”的表:
CREATE TABLE img_table (id int(11) NOT NULL AUTO_INCREMENT, img longblob, PRIMARY KEY(id));
这个表包括一个名为“img”的字段,是用于保存图片的。该字段被设置为“longblob”类型。
3. 我们可以使用如下PHP程序来将图片文件存储到MySQL数据库。
储存程序:
$mysqli = new mysqli(“localhost”, “DB_user”, “DB_pass”, “myimages”);
if ($mysqli->connect_error) exit(“Error”);
$id = 1;
$stmt = $mysqli->prepare(“INSERT INTO img_table (id, img) VALUES (?, ?)”);
$stmt->bind_param(“ib”, $id, $img);
$img = file_get_contents(‘image.jpg’);
$stmt->execute();
$stmt->close();
?>
4. 还可以使用PHP程序从MySQL数据库中读取图片。
读取程序:
$mysqli = new mysqli(“localhost”, “DB_user”, “DB_pass”, “myimages”);
if ($mysqli->connect_error) exit(“Error”);
$id = 1;
$stmt = $mysqli->prepare(“SELECT img FROM img_table WHERE id=?”);
$stmt->bind_param(“i”, $id);
$stmt->execute();
$stmt->bind_result($img);
$stmt->fetch();
header(“Content-Type: image/jpeg”);
echo $img;
$stmt->close();
?>
以上程序仅仅是一个简单演示,我们可以根据自己的需求编写适合自己的程序。
总结
在日常工作中,没有一种可靠的存储方法是通用性的,适合所有的应用场景。不过,在进行图片存储的时候使用MySQL存储的方式,可以带来不少的好处,例如灵活性高、可扩展性强等。希望本文能够对大家在使用MySQL存储图片时提供帮助。