如何在MySQL資料庫中直接儲存圖片
c 本文概述:
在mysql中建立一個新的資料庫
一個怎樣儲存檔案的例子程式
一個怎樣訪問檔案的例子程式
在mysql中建立一個新的database
首先,你必須在你的mysql中建立一個新的資料庫,我們將會把那些二進位制檔案儲存在這個資料庫裡。在例子中我會使用下列結構,為了建立資料庫,你必須做下列步驟:
以下是引用片段: 進入MySql控制器 輸入命令"create database binary_data;" 輸入命令"use binary_data;" 輸入命令"CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50));" (不能斷行) |
如果沒有意外,資料庫和表應該建立好了。 一個怎樣儲存檔案的例子程式 用這個例子你可以通過Html表單將檔案傳輸到資料庫中。.
store.php3 以下為引用的內容:
以下是引用片段: <?php // store.php3 - by Florian Dittmer <[email protected]> ?> <HTML> <HEAD><TITLE>Store binary data into SQL Database</TITLE></HEAD> <BODY> <?php // 如果提交了表單,程式碼將被執行: if ($submit) { // 連線到資料庫 // (你可能需要調整主機名,使用者名稱和密碼) MYSQL_CONNECT( "localhost", "root", "password"); mysql_select_db( "binary_data"); $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data))); $result=MYSQL_QUERY( "INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) ". "VALUES (’$form_description’,’$data’,’$form_data_name’,’$form_data_size’,’$form_data_type’)"); $id= mysql_insert_id(); print "<p>This file has the following Database ID: <b>$id</b>"; MYSQL_CLOSE(); } else { // 否則顯示儲存新資料的表單 ?> <form method="post" action=" <?php echo $PHP_SELF; ?>" enctype="multipart/form-data"> File Description:<br> <input type="text" name="form_description" size="40"> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000"> <br>File to upload/store in database:<br> <input type="file" name="form_data" size="40"> <p><input type="submit" name="submit" value="submit"> </form> <?php } ?> </BODY> </HTML> |
當檔案上傳至web伺服器之後,程式將會告訴你剛剛上傳的檔案的ID,記住這個ID,待會要用的。
一個怎樣訪問檔案的例子程式
你可以通過這個程式訪問你剛才儲存的檔案
以下為引用的內容:
以下是引用片段: <?php // getdata.php3 - by Florian Dittmer <[email protected]> // 呼叫方法: getdata.php3?id=<id> if($id) { // 你可能需要調整主機名,使用者名稱和密碼: @MYSQL_CONNECT( "localhost", "root", "password"); @mysql_select_db( "binary_data"); $query = "select bin_data,filetype from binary_data where id=$id"; $result = @MYSQL_QUERY($query); $data = @MYSQL_RESULT($result,0, "bin_data"); $type = @MYSQL_RESULT($result,0, "filetype"); Header( "Content-type: $type"); echo $data; }; ?> |
程式必須知道要訪問那個檔案, 你必須將ID作為一個引數。
例如: 一個檔案在資料庫中的ID為2. 你可以這樣呼叫它:
getdata.php3?id=2如果你將圖片儲存在資料庫裡, 你可以向呼叫圖片一樣呼叫它。
Example: 一個圖片檔案在資料庫中的ID為3. 你可以這樣呼叫它:
以下是引用片段: <img src="getdata.php3?id=3"> |
怎樣儲存大於1MB的檔案:
如果你想儲存大於1MB的檔案,你必須對你的程式、PHP設定、SQL設定進行許多修改,。
下面幾條也許可以幫助你儲存小於24MB的檔案:
修改 store.php3 ,將 MAX_FILE_SIZE 的值改成 24000000。
修改你的PHP設定,在一般情況下,PHP只允許小於2MB的檔案,你必須將max_filesize(在php.ini中)的值改成24000000
去掉MYSQL的資料包大小限制,在一般情況下 MYSQL 小於1 MB的資料包.
你必須用以下引數重啟你的MYSQL
以下是引用片段: /usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O max_allowed_packet=24M |
相關推薦
如何在MySQL資料庫中直接儲存圖片
c 本文概述: 在mysql中建立一個新的資料庫 一個怎樣儲存檔案的例子程式 一個怎樣訪問檔案的例子程式 在mysql中建立一個新的database 首先,你必須在你的mysql中建立一個新的資料庫,我們將會把那些二進位制檔案儲存在這個資料庫裡。在例子中
MySQL資料庫中的儲存引擎
與其他資料庫軟體不同,MySQL資料庫提供了一種名為儲存引擎的概念。儲存引擎是MySQL資料庫管理系統的一個重要特徵,在具體開發中,為了提高MySQL資料庫管理系統的使用效率和靈活性,可以根據實際情況來選擇儲存引擎。簡單的說資料庫是用一張張表來儲存資訊的,那麼必然就會存在有的表簡單,有的
MySQL 資料庫中如何儲存經緯度
資料庫儲存經緯度,需要採用什麼資料型別,小數點應該精確多少位? 赤道周長(米) 度數(度) 40076000 360 111322.2222 1
Java向Mysql資料庫中儲存圖片等二進位制檔案的實現,以及常見報錯的解決!
Mysql資料庫的功能很強大,除了能儲存字元等常見資料以外,它同樣可以儲存圖片等二進位制檔案,本文以儲存照片為例。 一、Mysql儲存二進位制檔案常見報錯有: 1.com.mysql.jdbc.PacketTooBigException: Packet for query
python爬蟲系列(4.3-資料儲存到mysql資料庫中)
一、如果你對mysql資料庫還不太熟悉 二、基本操作 1、在python中使用pymysql連線mysql 2、安裝包 pip3 install pymysql 3、定義一個建立資料庫的方法(或者手動、SQL語句建立資料庫) # 定義一個建立資料庫的函
Mysql資料庫中tinyint(1) 儲存數字時候取值為True、False解決辦法
boolean型別: 在Mysql中儲存boolean值時:會用1代表TRUE,0代表FALSE,因為boolean在MySQL裡的型別為tinyint(1) 遇到mysql資料庫儲存欄位型別為tin
從資料庫中讀取一個圖片並儲存為一個圖片檔案
import java.sql.*; import java.io.*; public class WriteDB { public static void main(String[] args) { Connection conn=null; String dr
怎麼將大Byte陣列型別儲存到以blob方式Mysql資料庫中
最近在做一個指紋方面的軟體,要用到Mysql資料庫,由於c#在連線資料庫方面比較的方面,就用了c#語言來寫,但是在一些細節方面的地方,遇到了比較棘手的問題,搞了好長時間才搞定,所以想就把經驗寫在下面。 文章主要解決的是,從指紋採集器上得到的指紋是一個很大的的byte
scrapy----將資料儲存到MySQL資料庫中
1.在pipelines.py中自定義自己的pipelineimport pymysql class PymysqlPipeline(object): def __init__(self): # 連線資料庫 self.connect =
從新增mysql的odbc驅動到powerDesigner將表結構直接匯入到mysql資料庫中,再到資料庫錶轉化為powerDesigner中的表結構
一、首先要在powerDesigner中新增mysql的odbc的資料來源連線驅動:地址如下 根據自己的系統選擇,注意這裡要選擇32位的, 然後選擇 之後進行安裝,之後你發現在powerDesigner中還是找不到mysql的odbc的驅動,為什麼那?因為還
使用Twisted框架實現非同步儲存資料到MySQL資料庫中
概述 以爬取豆瓣讀書Top250排行榜為例。 關鍵是使用Twisted框架的adbapi,建立資料庫連線池物件,然後使用這個資料庫連線池物件進行資料庫操作, 這樣就實現了資料儲存的非同步方案。
【Python爬蟲】 輕鬆幾步 將 scrapy 框架 獲取得到的 資料 儲存到 MySQL 資料庫中
以下操作 是在 一個 完整的 scrapy 專案中 新增 程式碼: 中介軟體 和 spiders 中的程式碼 都不需要修改 只需要 做下面兩件事就可以將資料儲存到資料庫了,不過在寫程式碼之前 我們要先: 在終端 執行命令:net star
Django PIL 直接從記憶體中或資料庫中blob顯示圖片
最近想實現一個圖片驗證的Python程式碼,被PIL卡住了。因為看了PIL的一些demo,就是沒有看到直接將image轉換成記憶體資料或可以直接print資料的,總不成我要將image先存成臨時檔案吧?這我可接受不了,我試了好長時間終於在limodou那裡的一篇文章找到了靈感
使用python爬蟲抓取頁面之後,將頁面儲存到Mysql資料庫中
#首先抓取html頁面內容,為了安全起見,有關url內容和mysql連線內容都以星號代替 headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/
MySQL資料庫中主鍵和外來鍵的操作
在MySQL資料庫中,一般會涉及到主鍵和外來鍵,在上一個表中添加了主鍵之後,通常在下一個表中要新增外來鍵,但是添加了外來鍵之後,在實體類和資料庫中在加上上一個表的主鍵會比較好,這樣兩個表關聯之後,在上一個表查詢完成之後,將查詢是出來的欄位拿著去下一個庫裡查詢,會比較好。 select * fro
mysql資料庫中 IN 和 EXISTS 的誤區
前言:最近在看 《高效能mysql第三版》 這本書,讀到子查詢優化那章,書中說mysql會將in子查詢改寫成exists查詢(書中基於的mysql版本是5.1.50和5.5),於是乎我又上網找了下資料,發現網上說法幾乎都是: &
解決查詢MySQL資料庫中重複資料的問題
今天遇到一個問題,需求是查詢新採集資料中 重複資料 的條數。在採集完資料對資料進行去重查詢時sql結果不正確,因為有一部分sql是在業務程式碼中進行拼接的: “SELECT COUNT(*) FROM (“ + sql + “)_AA;” 之前的sql:SELECT 1 FROM TAB
mysql資料庫中的函式
函式表示對輸入引數值返回一個具有特定關係的值,在mysql中使用函式可以極大的提高使用者對資料庫的管理效率。Mysql中的函式主要有數學函式,字串函式,日期函式,時間函式以及條件判斷函式、系統資訊函式和加密函式等。 1、流程控制函式 &nbs
mysql資料庫中的運算子
運算子是mysql執行特定算術或邏輯操作的符號,mysql的運算子主要有算術運算子、比較運算子、邏輯運算子、位操作運算子 1、算術運算子 運算子 作用 + 加法運算
mysql資料庫中的增刪改操作
1、插入資料 語法格式: INSERT INTO table_name (column_list) VALUES (value_list); &n