在MySQL中存儲用戶提交的數(shù)據(jù)和文件
01
的07
創(chuàng)建表單
有時從網(wǎng)站用戶收集數(shù)據(jù)并將此信息存儲在MySQL數(shù)據(jù)庫中非常有用。我們已經(jīng)看到您可以使用PHP填充數(shù)據(jù)庫,現(xiàn)在我們將增加允許通過用戶友好的web表單添加數(shù)據(jù)的實(shí)用性。
我們要做的第一件事是創(chuàng)建一個帶有表單的頁面。對于我們的演示,我們將做一個非常簡單的演示:
您的姓名:
電子郵件:
位置:
02
of 07
插入-從表單
添加數(shù)據(jù)接下來,你需要process.php,我們表格將其數(shù)據(jù)發(fā)送到的頁面。以下是如何收集此數(shù)據(jù)以發(fā)布到MySQL數(shù)據(jù)庫的示例:
正如您所看到的,我們首先要做的是為上一頁的數(shù)據(jù)分配變量。然后,我們只查詢數(shù)據(jù)庫以添加此新信息。
當(dāng)然,在我們嘗試之前,我們需要確保表格實(shí)際存在。執(zhí)行此代碼應(yīng)創(chuàng)建一個可與我們的示例文件一起使用的表:
創(chuàng)建表數(shù)據(jù)(名稱VARCHAR(30),電子郵件VARCHAR(30),位置VARCHAR(30));
03
of 07
添加文件上載
現(xiàn)在你知道如何在MySQL中存儲用戶數(shù)據(jù),所以讓'進(jìn)一步研究如何上傳文件進(jìn)行存儲。首先,讓我們的樣本數(shù)據(jù)庫:
創(chuàng)建表上載(id INT(4)NOT NULL AUTOu增量主鍵,描述CHAR(50),data LONGBLOB,文件名CHAR(50),文件大小CHAR(50),文件類型CHAR(50));
你應(yīng)該注意的第一件事是一個名為id的字段,它被設(shè)置為AUTO?增量。這種數(shù)據(jù)類型意味著t它將計(jì)算為每個文件分配一個從1開始到9999的**文件ID(因?yàn)槲覀冎付?位數(shù)字)。您也可能會注意到我們的數(shù)據(jù)字段稱為LONGBLOB。如前所述,有許多類型的BLOB。TINYBLOB,BLOB,MEDIUMBLOB和LONGBLOB是您的選項(xiàng),但我們將其設(shè)置為LONGBLOB以允許最大的文件。
接下來,我們將創(chuàng)建一個表單,允許用戶上傳她的文件。這只是一個簡單的形式,顯然,如果你愿意,你可以穿上衣服:
說明:
要上傳的文件:
一定要注意enctype,這非常重要!
04
of 07
將文件上載到MySQL
接下來,我們需要實(shí)際創(chuàng)建upload.php,它將獲取我們的用戶文件并將其存儲在我們的數(shù)據(jù)庫中。以下是樣本編碼upload.php.
文件ID:$ID";打印"
文件名:$formdataName
#34;;print"
文件大?。?strong>$formdata
";print"
文件類型:$form?data?Type
#34;;打印"要上傳另一個文件,請單擊此處"?>
在下一頁了解更多有關(guān)實(shí)際操作的信息。
05
of 07
添加上傳解釋
這個代碼實(shí)際做的第一件事是連接到數(shù)據(jù)庫(您需要用實(shí)際的數(shù)據(jù)庫信息替換它。)
接下來,它使用ADDSLASHES函數(shù)。這樣做的是在文件名中添加反斜杠,以便我們在查詢數(shù)據(jù)庫時得到錯誤。例如e、 如果我們有Billy'sFile.gif,它將把它轉(zhuǎn)換成Billy'sFile.gif. FOPEN打開該文件,FREAD航天小知識是讀取的二進(jìn)制安全文件,以便在需要時將ADDSLASHES應(yīng)用于文件中的數(shù)據(jù)。
接下來,我們將表格收集的所有信息添加到數(shù)據(jù)庫中。您會注意到我們首先列出了這些字段,然后列出了第二個值,所以我們不會意外地嘗試將數(shù)據(jù)插入到第一個字段(自動分配ID字段)中
最后,我們打印出數(shù)據(jù)供用戶查看。
06
of 07
檢索文件
我們已經(jīng)學(xué)會了如何從MySQL數(shù)據(jù)庫中檢索原始數(shù)據(jù)。同樣,將文件存儲在MySQL數(shù)據(jù)庫中也不會'如果沒有',則不是很實(shí)用;無法檢索它們。我們將學(xué)習(xí)如何做到這一點(diǎn)的方法是根據(jù)每個文件的ID號為其分配一個URL。如果您記得我們上傳文件時,我們會自動為每個文件分配一個ID號。當(dāng)我們調(diào)用文件時,我們將在這里使用它。將此代碼保存為download.php
現(xiàn)在要檢索我們的文件,我們將瀏覽器指向:http://www.yoursite.com/download.php?id=2(用要下載/顯示的任何文件id替換2)
這個代碼是做很多事情的基礎(chǔ)。以此為基礎(chǔ),您可以添加一個數(shù)據(jù)庫查詢來列出文件,并將其放入下拉菜單中供人們選擇?;蛘吣梢詫D設(shè)置為隨機(jī)創(chuàng)建的數(shù)字,以便每次訪問一個人時都會隨機(jī)顯示與數(shù)據(jù)庫不同的圖形??赡苄允菬o盡的。
07
257 of 07 258刪除文件
以下是一種從數(shù)據(jù)庫中刪除文件的非常簡單的方法。你想小心??!將此代碼保存為刪除.php
像我們之前下載文件的代碼一樣,此腳本只需鍵入URL即可刪除文件:http://yoursite.com/remove.php?id=2(用要刪除的id替換2。)出于顯而易見的原因,您希望小心使用此代碼。這當(dāng)然是為了演示,當(dāng)我們實(shí)際構(gòu)建應(yīng)用程序時,我們希望提供保護(hù)措施,讓用戶確定他們是否要刪除,或者可能只允許有密碼的人刪除文件。這個簡單的代碼是我們將做所有這些事情的基礎(chǔ)。