新聞中心
MySQL是目前更流行的關系型數(shù)據(jù)庫之一,其具有高效性、可靠性和穩(wěn)定性等優(yōu)點,因此被廣泛應用于各種大型網(wǎng)站和企業(yè)級應用中。在Web應用程序開發(fā)中,常常需要將圖片等二進制文件存儲在數(shù)據(jù)庫中。本文將介紹如何在MySQL中存儲圖片,并給出建表指南。

一、為什么要在MySQL中存儲圖片?
在Web應用程序中,圖片是非常常見的一種二進制文件,如果采用傳統(tǒng)方式將圖片存儲在文件系統(tǒng)中,存在很多問題。圖片存儲方式分散,不利于管理和維護??缙脚_訪問圖片的效率較低。再次,難以對圖片進行統(tǒng)一的安全性、權限控制和清理工作等。
而如果將圖片存儲在MySQL中,則可以很好地解決上述問題。MySQL數(shù)據(jù)庫可以擴展到幾乎無限的大小,不會受到單個文件系統(tǒng)的大小和限制的影響。MySQL提供了完善的ACID事務支持和復雜的安全管理機制,可以確保圖片存儲的安全性和可靠性。MySQL可以兼容各種操作系統(tǒng)和平臺,可以方便、高效地實現(xiàn)跨平臺訪問。
因此,將圖片存儲在MySQL中,可以為Web應用程序帶來更加優(yōu)秀的性能和易用性。
二、如何在MySQL中存儲圖片?
將圖片存儲在MySQL中,需要建立一個包含圖片二進制內(nèi)容的表。
以下是一個簡單的建立圖片存儲表的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 ‘圖片數(shù)據(jù)’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’圖片存儲表’;
“`
該表包含5個字段:
– id:圖片ID,自增長。
– name:圖片名稱,不允許為空。
– type:圖片類型,不允許為空,通常情況下為“image/jpeg”等MIME類型。
– size:圖片大小,單位為字節(jié),不允許為空。
– data:圖片數(shù)據(jù),采用longblob類型存儲,不允許為空。
在插入圖片數(shù)據(jù)時,需要注意以下幾個問題:
1. 內(nèi)存限制:MySQL默認情況下只允許存儲更大長度為1MB的二進制數(shù)據(jù),如果需要存儲更大的數(shù)據(jù),需要修改相關配置項??赏ㄟ^SET GLOBAL max_allowed_packet=xxx命令修改,例如:SET GLOBAL max_allowed_packet=1024*1024*10。
2. SQL注入:為了避免SQL注入攻擊,需要將圖片數(shù)據(jù)進行轉義或使用預處理語句。
3. 安全問題:為了避免安全問題,建議將圖片數(shù)據(jù)進行加密或壓縮,存儲時使用二進制模式。
以下是一個簡單的插入圖片數(shù)據(jù)的SQL語句示例:
“`
INSERT INTO picture (name, type, size, data) VALUES (?, ?, ?, ?);
“`
在執(zhí)行該SQL語句時,需要將圖片數(shù)據(jù)以二進制流的形式傳遞到SQL語句中:
“`
$data = file_get_contents(‘picture.jpg’);
$stmt->bind_param(‘ssib’, $name, $type, $size, $data);
$stmt->execute();
“`
三、如何在Web應用程序中訪問MySQL中的圖片?
在Web應用程序中,訪問MySQL中的圖片需要經(jīng)過以下幾個步驟:
1. 查詢圖片數(shù)據(jù):通過SQL查詢獲取圖片數(shù)據(jù),例如:
“`
SELECT * FROM picture WHERE id = ?;
“`
2. 輸出圖片數(shù)據(jù):使用Web服務器的輸出函數(shù)將圖片數(shù)據(jù)輸出到瀏覽器。以下是一個簡單的PHP輸出圖片的示例:
“`
header(‘Content-Type: ‘ . $type);
readfile($data);
“`
其中,$type為圖片類型,$data為上一步查詢到的圖片數(shù)據(jù)。
四、
將圖片存儲在MySQL中,可以為Web應用程序帶來高效、可靠的圖片管理機制。在建立圖片存儲表時,需要注意表結構設計和數(shù)據(jù)插入的安全性問題。在Web應用程序中訪問MySQL中的圖片時,需要注意輸出函數(shù)的選取和輸出內(nèi)容的安全性問題。通過合理的設計和開發(fā),可以充分發(fā)揮MySQL在圖片存儲和管理中的優(yōu)勢,提高Web應用程序的性能和易用性。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設、網(wǎng)站制作、網(wǎng)頁設計及定制高端網(wǎng)站建設服務!
如何在MYSQL數(shù)據(jù)庫中新建一個數(shù)據(jù)庫
是這句:創(chuàng)建一個數(shù)據(jù)庫MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
基本操作:MySQL中新建用戶,新建數(shù)據(jù)庫,用戶授權,刪除用戶,修改密碼的相關操作測試環(huán)境:WIN32 mysql5.0.45注:本操作是在WIN命令提示符下,phpMyAdmin同樣適用。
用戶:phplamp 用戶數(shù)據(jù)庫:phplampDB1.新建用戶。//登錄MYSQL
@>mysql -u root -p
@>密碼
//創(chuàng)建用戶
mysql> insert into mysql.user(Host,User,Password) values(“l(fā)ocalhost”,”phplamp”,password(“1234”));
//刷新系統(tǒng)權限表
mysql>flush privileges;
這樣就創(chuàng)建了一個名為:phplamp 密碼為:1234 的用戶。然后登錄一下。mysql>exit;
@>mysql -u phplamp -p
@>輸入密碼
mysql>登錄成功2.為用戶授權。//登錄MYSQL(有ROOT權限)。我里我以ROOT身份登錄.
@>mysql -u root -p
@>密碼
//首先為用戶創(chuàng)建一個數(shù)據(jù)庫(phplampDB)
mysql>create database phplampDB;
//授權phplamp用戶擁有phplamp數(shù)據(jù)庫的所有權限。
>grant all privileges on phplampDB.* to identified by ‘1234’;
//刷新系統(tǒng)權限表
mysql>flush privileges;
mysql>其它操作/*
如果想指定部行笑分權限給一用戶,可哪擾以這樣來寫:
mysql>grant select,update on phplampDB.* to identified by ‘1234’;
//刷新系統(tǒng)權限表。
mysql>flush privileges;
*/3.刪除用戶。@>mysql -u root -p
@>密碼
mysql>DELETE FROM user WHERE User=”phplamp”李帶旦 and Host=”localhost”;
mysql>flush privileges;
//刪除用戶的數(shù)據(jù)庫
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.列出所有數(shù)據(jù)庫mysql>show database;6.切換數(shù)據(jù)庫mysql>use ‘數(shù)據(jù)庫名’;7.列出所有表mysql>show tables;8.顯示數(shù)據(jù)表結構mysql>describe 表名;9.刪除數(shù)據(jù)庫和數(shù)據(jù)表mysql>drop database 數(shù)據(jù)庫名;
mysql>drop table 數(shù)據(jù)表名;1:使用SHOW語句找出在服務器上當前存在什么數(shù)據(jù)庫:
mysql> SHOW DATABASES;
2:2、創(chuàng)建一個數(shù)據(jù)庫MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
3:選擇你所創(chuàng)建的數(shù)據(jù)庫
mysql> USE MYSQLDATA; (按回車鍵出現(xiàn)Database changed 時說明操作成功!)
4:查看現(xiàn)在的數(shù)據(jù)庫中存在什么表
mysql> SHOW TABLES;
5:創(chuàng)建一個數(shù)據(jù)庫表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:顯示表的結構:
mysql> DESCRIBE MYTABLE;
7:往表中加入記錄
mysql> insert into MYTABLE values (“hyq”,”M”);
8:用文本方式將數(shù)據(jù)裝入數(shù)據(jù)庫表中(例如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:更新表中數(shù)據(jù)
mysql>update MYTABLE set sex=”f” where name=’hyq’;
1、打開電腦的SQL軟件 ,輸入用戶名和密碼,連接上Mysql主機地址,將Mysql啟動。
2、進桐沖入Mysql里面后,用鼠標右鍵點擊主機,然后會彈出菜單欄,點擊里面的“創(chuàng)建數(shù)據(jù)庫”,也可吵鍵以使用快捷鍵Ctrl+D。
3、接著會出現(xiàn)“創(chuàng)建數(shù)據(jù)庫”的窗口,為創(chuàng)建的數(shù)據(jù)庫取名,并選擇“基字符集”為“UTF-8”,升輪巧然后點擊創(chuàng)建。
4、這樣子就完成了數(shù)據(jù)庫的創(chuàng)建動作,這時候可以發(fā)現(xiàn)左邊多了個剛剛命名的數(shù)據(jù)庫。
1、安裝:
首先要安裝MySQL,并且配置信息。創(chuàng)建一個
快捷鍵
到桌面上,雙擊軟件,打開軟件,界面如下圖所示,什么都沒有,我們要先創(chuàng)建一個連接。
2、創(chuàng)建連接:
文件→新建連接,如下圖所示,會彈出一個對話框,信息游孝好填寫正確。
3、測試連接:
(1)在彈出的新建連接對話框中要填寫好連接名、主機名、端口、
用戶名
和密碼。
(2)填寫好神孫稿之后,單擊“測試連接”,彈出“連接成功”,就按確定。
4、填寫內(nèi)容:
會看到左邊出現(xiàn)了我們剛才創(chuàng)建的連接,里面有很多的數(shù)據(jù),我們可以右擊連接,選擇新建數(shù)據(jù)庫。填寫數(shù)據(jù)庫的名稱和
字符編碼
。
字符集
下拉框中列凱含表比較多,可以輸入關鍵字進行過濾,如圖,輸入utf即可過濾出以utf開頭的字符集,一般常用的utf-8和gbk字符集
排序規(guī)則的選擇需要注意的是,utf8_general_ci、utf8_general_cs、utf8_bin的區(qū)別,ci全稱為case insensitive,意思是大小寫不敏感,cs區(qū)分大小寫,bin是以二進制數(shù)據(jù)存儲,且區(qū)分大小寫。如果要求數(shù)據(jù)庫不區(qū)分大小寫,則需要選擇ci結尾的。
5、新建表:
最終結果如圖所示,還可以右擊數(shù)據(jù)庫,選擇新建表。
參考資料:
百度百科-SQL數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫就是在系統(tǒng)磁盤上劃分一塊區(qū)域用于存儲和管理數(shù)據(jù)。
基本語法格式
其中“db_name”是將要創(chuàng)建的數(shù)據(jù)庫名稱,該名稱不能與已經(jīng)存在的數(shù)據(jù)庫重名。
實例
創(chuàng)建數(shù)據(jù)庫 shulanxt,輸入語句如下:
按回車鍵執(zhí)行語沖辯皮句,創(chuàng)建名為散差shulanxt的灶昌數(shù)據(jù)庫。
-from 樹懶學堂
MySQL數(shù)據(jù)庫系統(tǒng)可以支持許多不同的數(shù)據(jù)庫,通激察常,每個應用程序需要一個數(shù)據(jù)庫。
在Book-O-Rama例子中,數(shù)據(jù)庫名為books。
創(chuàng)建數(shù)據(jù)庫是最容易的部分。在mySQL命令提示符下,輸入如下所示命令:
MySQL>create datebase dbname;
應該用所希望的數(shù)據(jù)庫枝鉛罩名稱來代替”dbname”字符串。
在Book-O-Rama例子中,要創(chuàng)建一個名為books的數(shù)據(jù)庫。
就這樣應該會看到如下所示的響應(執(zhí)行時間會因為機器不同而不同):
Query ok,1 row affected(0.0 sec)
如果出現(xiàn)上訴字段意味著一切正常。
如果沒有得到響應,請確認在上面的命令行后面輸入分號,分號將告訴mySQL已經(jīng)完成猛鬧了命令輸入,該執(zhí)行命令了。
關于mysql數(shù)據(jù)庫建表儲存圖片的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
四川成都云服務器租用托管【創(chuàng)新互聯(lián)】提供各地服務器租用,電信服務器托管、移動服務器托管、聯(lián)通服務器托管,云服務器虛擬主機租用。成都機房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗、開啟建站+互聯(lián)網(wǎng)銷售服務,與企業(yè)客戶共同成長,共創(chuàng)價值。
當前名稱:MySQL如何存儲圖片:建表指南(mysql數(shù)據(jù)庫建表儲存圖片)
標題URL:http://m.5511xx.com/article/cdcdioj.html


咨詢
建站咨詢
