我想使用web服務將文件插入駐留在遠程Web服務器上的MYSQL數據庫中。如何在MySQL數據庫中插入文件?
我的問題是:什麼類型的表列(如varchar等)將存儲文件?插入語句在文件的情況下會有所不同嗎?
我想使用web服務將文件插入駐留在遠程Web服務器上的MYSQL數據庫中。如何在MySQL數據庫中插入文件?
我的問題是:什麼類型的表列(如varchar等)將存儲文件?插入語句在文件的情況下會有所不同嗎?
BLOB數據類型最適合存儲文件。
您需要使用BLOB,還有的小圖標,中,長,只是BLOB,與其他類型的,根據選一滿足您的尺寸需求。
TINYBLOB 255
BLOB 65535
MEDIUMBLOB 16777215
LONGBLOB 4294967295
(in bytes)
insert語句是相當正常的。您需要使用fread
然後addslashes
來讀取文件。
其他的答案會給你一個好主意,如何完成你要求什麼....
然而
不是有很多情況下,這是一個好主意。通常最好只將文件名存儲在數據庫中,並將文件存儲在文件系統中。
這樣你的數據庫就小得多了,可以更容易運輸,更重要的是更快的備份/恢復。
我完全同意這一點。文件系統是爲存儲和提供文件而構建的 - 它們非常擅長。但是,Blob總是在那裏,以防止它讓你的工作更輕鬆。我可以看到一些託管設置,將文件干擾到數據庫將節省時間,精力,甚至可以幫助提高速度。 – 2011-05-11 04:44:15
@ hamlin11你是正確的,如果它只是幾個文件。如果是用於某種文檔存儲區域,那麼這樣做會是一個很大的問題。 – 2011-05-11 04:51:21
文件大小由MySQL類型:
有MySQL中的BLOB幾種類型,檢查https://stackoverflow.com/a/43514588/1737158 – 2017-10-09 07:01:36