2013-07-18 46 views
-2

我目前正面臨一個問題。我不知道如何將圖像上傳到MySQL數據庫。 然後,我將需要從數據庫中檢索並顯示它。將圖像上傳到SQL數據庫,然後從數據庫中檢索並顯示它

這實際上是因爲我需要創建一個包含添加到購物車按鈕的在線目錄。但是,要在網上目錄中顯示圖像,我不能使用硬編碼。我希望能夠經常更新在線目錄,只要我在管理頁面中擁有新產品。

我只能做它的文字,而不是圖像。

if (isset($_POST['submit'])){ 
    $name = $_POST['name']; 
    $add = mysql_query("INSERT INTO maritime_products(name) VALUES('$name')") or die("gg2"); 

    } 

$showname = mysql_query("SELECT * FROM maritime_products"); 
while($anything = mysql_fetch_array($showname)){ 
    echo $anything['name']; 
} 
+0

嗨,有很多教程這個在那裏 - 因爲它的立場,這是一個堆棧溢出問題過於寬泛。先閱讀一下這個主題。在開始之前,請閱讀[在DB中存儲圖像 - 是或否?](http://stackoverflow.com/q/3748) –

+0

** Data ** Base應該用於** Data **。圖像是**文件**。因此,最好使用** File **系統來存儲這樣一個對象。 – dognose

+0

[在DB中存儲圖像的可能的重複 - 是或否?](http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay) – mike27015

回答

5

不要需要在數據庫中存儲的圖像。 請將圖像路徑存儲在數據庫中,並將圖像本身存儲在文件系統中。 謝謝!

+0

所以我可以問我如何將圖像的路徑存儲在我的數據庫中? – user2594593

+0

當然!首先,您可以通過move_uploaded_file php-func將圖片上傳到您的上傳目錄(自定義)。那麼您可以將文件名作爲簡單的文本字段存儲在數據庫表記錄中。當您檢索記錄的圖像路徑時,只需將上傳目錄路徑與存儲在數據庫表記錄中的圖像路徑連接起來即可。 –

+0

我真的不明白你的意思。你介意把代碼放在這裏嗎? – user2594593

0

由於Serge Velikanov已經說過,不要將您的圖像存儲在您託管網站的服務器上,並且只將圖片的URL保存到數據庫中。原因:如果您更改了圖像的大小,則只需再次將其上傳到FTP即可完成,無需再次將其保存到數據庫中。 但是,如果你仍然打算這樣做,你可以看看BLOB, OLE Object

的利弊you can find here(不是我寫的):

我的經驗是,上傳大量圖片或其他二進制對象到SQL Server是不是很高性能和不完全可靠。多年來,SQL Server團隊已經取得了一些進展(varbinary(max)等),但他們在性能方面還沒有取得很大的提升。如果你打算這樣做,我會建議分塊,而不是一次上傳整個圖像。另外,SQL Server 2008還有一個可以運行的新選項(服務),允許引擎將Blob數據傳輸到文件系統。我還沒有實現此服務,但我相信它可以與Shadow Copy服務一起使用,並將文件流式傳輸到文件系統。我不清楚備份如何工作,但由於指針將存儲在表中,因此引擎很可能會知道備份文件以及表中的其他數據。在MSDN或SQL Server網站上查看它。 (布萊恩·卡斯特)

又是重複嗎?

https://stackoverflow.com/questions/805519/save-image-in-database

store image in database or in a system file?

相關問題