MySQL如何存储图片:建表指南 (mysql数据库建表储存图片)

MySQL是目前更流行的关系型数据库之一,其具有高效性、可靠性和稳定性等优点,因此被广泛应用于各种大型网站和企业级应用中。在Web应用程序开发中,常常需要将图片等二进制文件存储在数据库中。本文将介绍如何在MySQL中存储图片,并给出建表指南。

一、为什么要在MySQL中存储图片?

在Web应用程序中,图片是非常常见的一种二进制文件,如果采用传统方式将图片存储在文件系统中,存在很多问题。图片存储方式分散,不利于管理和维护。跨平台访问图片的效率较低。再次,难以对图片进行统一的安全性、权限控制和清理工作等。

而如果将图片存储在MySQL中,则可以很好地解决上述问题。MySQL数据库可以扩展到几乎无限的大小,不会受到单个文件系统的大小和限制的影响。MySQL提供了完善的ACID事务支持和复杂的安全管理机制,可以确保图片存储的安全性和可靠性。MySQL可以兼容各种操作系统和平台,可以方便、高效地实现跨平台访问。

因此,将图片存储在MySQL中,可以为Web应用程序带来更加优秀的性能和易用性。

二、如何在MySQL中存储图片?

将图片存储在MySQL中,需要建立一个包含图片二进制内容的表。

以下是一个简单的建立图片存储表的SQL语句示例:

“`

CREATE TABLE `picture` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) NOT NULL COMMENT ‘图片名称’,

`type` varchar(50) NOT NULL COMMENT ‘图片类型’,

`size` int(11) NOT NULL COMMENT ‘图片大小’,

`data` longblob NOT NULL COMMENT ‘图片数据’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’图片存储表’;

“`

该表包含5个字段:

– id:图片ID,自增长。

– name:图片名称,不允许为空。

– type:图片类型,不允许为空,通常情况下为“image/jpeg”等MIME类型。

– size:图片大小,单位为字节,不允许为空。

– data:图片数据,采用longblob类型存储,不允许为空。

在插入图片数据时,需要注意以下几个问题:

1. 内存限制:MySQL默认情况下只允许存储更大长度为1MB的二进制数据,如果需要存储更大的数据,需要修改相关配置项。可通过SET GLOBAL max_allowed_packet=命令修改,例如:SET GLOBAL max_allowed_packet=1024*1024*10。

2. SQL注入:为了避免SQL注入攻击,需要将图片数据进行转义或使用预处理语句。

3. 安全问题:为了避免安全问题,建议将图片数据进行加密或压缩,存储时使用二进制模式。

以下是一个简单的插入图片数据的SQL语句示例:

“`

INSERT INTO picture (name, type, size, data) VALUES (?, ?, ?, ?);

“`

在执行该SQL语句时,需要将图片数据以二进制流的形式传递到SQL语句中:

“`

$data = file_get_contents(‘picture.jpg’);

$stmt->bind_param(‘ssib’, $name, $type, $size, $data);

$stmt->execute();

“`

三、如何在Web应用程序中访问MySQL中的图片?

在Web应用程序中,访问MySQL中的图片需要经过以下几个步骤:

1. 查询图片数据:通过SQL查询获取图片数据,例如:

“`

SELECT * FROM picture WHERE id = ?;

“`

2. 输出图片数据:使用Web服务器的输出函数将图片数据输出到浏览器。以下是一个简单的PHP输出图片的示例:

“`

header(‘Content-Type: ‘ . $type);

readfile($data);

“`

其中,$type为图片类型,$data为上一步查询到的图片数据。

四、

将图片存储在MySQL中,可以为Web应用程序带来高效、可靠的图片管理机制。在建立图片存储表时,需要注意表结构设计和数据插入的安全性问题。在Web应用程序中访问MySQL中的图片时,需要注意输出函数的选取和输出内容的安全性问题。通过合理的设计和开发,可以充分发挥MySQL在图片存储和管理中的优势,提高Web应用程序的性能和易用性。

相关问题拓展阅读:

如何在MYSQL数据库中新建一个数据库

是这句:创建一个数据库MYSQLDATA

mysql> CREATE DATABASE MYSQLDATA;

基本操作:MySQL中新建用户,新建数据库,用户授权,删除用户,修改密码的相关操作测试环境:WIN32 mysql5.0.45注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。

用户:phplamp 用户数据库:phplampDB1.新建用户。//登录MYSQL

@>mysql -u root -p

@>密码

//创建用户

mysql> insert into mysql.user(Host,User,Password) values(“localhost”,”phplamp”,password(“1234”));

//刷新系统权限表

mysql>flush privileges;

这样就创建了一个名为:phplamp 密码为:1234 的用户。然后登录一下。mysql>exit;

@>mysql -u phplamp -p

@>输入密码

mysql>登录成功2.为用户授权。//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.

@>mysql -u root -p

@>密码

//首先为用户创建一个数据库(phplampDB)

mysql>create database phplampDB;

//授权phplamp用户拥有phplamp数据库的所有权限。

>grant all privileges on phplampDB.* to identified by ‘1234’;

//刷新系统权限表

mysql>flush privileges;

mysql>其它操作/*

如果想指定部行笑分权限给一用户,可哪扰以这样来写:

mysql>grant select,update on phplampDB.* to identified by ‘1234’;

//刷新系统权限表。

mysql>flush privileges;

*/3.删除用户。@>mysql -u root -p

@>密码

mysql>DELETE FROM user WHERE User=”phplamp”李带旦 and Host=”localhost”;

mysql>flush privileges;

//删除用户的数据库

mysql>drop database phplampDB;4.修改指定用户密码。@>mysql -u root -p

@>密码

mysql>update mysql.user set password=password(‘新密码’) where User=”phplamp” and Host=”localhost”;

mysql>flush privileges;5.列出所有数据库mysql>show database;6.切换数据库mysql>use ‘数据库名’;7.列出所有表mysql>show tables;8.显示数据表结构mysql>describe 表名;9.删除数据库和数据表mysql>drop database 数据库名;

mysql>drop table 数据表名;1:使用SHOW语句找出在服务器上当前存在什么数据库:

mysql> SHOW DATABASES;

2:2、创建一个数据库MYSQLDATA

mysql> CREATE DATABASE MYSQLDATA;

3:选择你所创建的数据库

mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)

4:查看现在的数据库中存在什么表

mysql> SHOW TABLES;

5:创建一个数据库表

mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

6:显示表的结构:

mysql> DESCRIBE MYTABLE;

7:往表中加入记录

mysql> insert into MYTABLE values (“hyq”,”M”);

8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)

mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;

9:导入.sql文件命令(例如D:/mysql.sql)

mysql>use database;

mysql>source d:/mysql.sql;

10:删除表

mysql>drop TABLE MYTABLE;

11:清空表

mysql>delete from MYTABLE;

12:更新表中数据

mysql>update MYTABLE set sex=”f” where name=’hyq’;

1、打开电脑的SQL软件 ,输入用户名和密码,连接上Mysql主机地址,将Mysql启动。

2、进桐冲入Mysql里面后,用鼠标右键点击主机,然后会弹出菜单栏,点击里面的“创建数据库”,也可吵键以使用快捷键Ctrl+D。

3、接着会出现“创建数据库”的窗口,为创建的数据库取名,并选择“基字符集”为“UTF-8”,升轮巧然后点击创建。

4、这样子就完成了数据库的创建动作,这时候可以发现左边多了个刚刚命名的数据库。

1、安装:

首先要安装MySQL,并且配置信息。创建一个

快捷键

到桌面上,双击软件,打开软件,界面如下图所示,什么都没有,我们要先创建一个连接。

2、创建连接:

文件→新建连接,如下图所示,会弹出一个对话框,信息游孝好填写正确。

3、测试连接:

(1)在弹出的新建连接对话框中要填写好连接名、主机名、端口、

用户名

和密码。

(2)填写好神孙稿之后,单击“测试连接”,弹出“连接成功”,就按确定。

4、填写内容:

会看到左边出现了我们刚才创建的连接,里面有很多的数据,我们可以右击连接,选择新建数据库。填写数据库的名称和

字符编码

字符集

下拉框中列凯含表比较多,可以输入关键字进行过滤,如图,输入utf即可过滤出以utf开头的字符集,一般常用的utf-8和gbk字符集

排序规则的选择需要注意的是,utf8_general_ci、utf8_general_cs、utf8_bin的区别,ci全称为case insensitive,意思是大小写不敏感,cs区分大小写,bin是以二进制数据存储,且区分大小写。如果要求数据库不区分大小写,则需要选择ci结尾的。

5、新建表:

最终结果如图所示,还可以右击数据库,选择新建表。

参考资料:

百度百科-SQL数据库

创建数据库就是在系统磁盘上划分一块区域用于存储和管理数据。

基本语法格式

其中“db_name”是将要创建的数据库名称,该名称不能与已经存在的数据库重名。

实例

创建数据库 shulanxt,输入语句如下:

按回车键执行语冲辩皮句,创建名为散差shulanxt的灶昌数据库。

-from 树懒学堂

MySQL数据库系统可以支持许多不同的数据库,通激察常,每个应用程序需要一个数据库。

在Book-O-Rama例子中,数据库名为books。

创建数据库是最容易的部分。在mySQL命令提示符下,输入如下所示命令:

MySQL>create datebase dbname;

应该用所希望的数据库枝铅罩名称来代替”dbname”字符串。

在Book-O-Rama例子中,要创建一个名为books的数据库。

就这样应该会看到如下所示的响应(执行时间会因为机器不同而不同):

Query ok,1 row affected(0.0 sec)

如果出现上诉字段意味着一切正常。

如果没有得到响应,请确认在上面的命令行后面输入分号,分号将告诉mySQL已经完成猛闹了命令输入,该执行命令了。

关于mysql数据库建表储存图片的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » MySQL如何存储图片:建表指南 (mysql数据库建表储存图片)