将Image上传到SQL数据库,然后从数据库中检索并显示它

时间:2013-07-18 08:42:46

标签: php mysql

我目前正面临一个问题。我不知道如何将图像上传到mysql数据库。 之后我将需要从数据库中检索并显示它。

实际上是因为我需要创建一个包含“添加到购物车”按钮的在线目录。但是对于要在在线目录中显示的图像,我不能使用硬编码。我希望每当我在管理页面中有新产品时,都能经常更新在线目录。

我只能用文字代替图片。

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'];
}

2 个答案:

答案 0 :(得分:5)

不要需要将图像存储在数据库中。 请将数据路径存储在数据库中,并将图像本身存储在文件系统中。 谢谢!

答案 1 :(得分:0)

正如Serge Velikanov已经说过的那样,不要将您的图像存储在您托管网站的服务器上,只将图片的URL保存到数据库中。原因:如果您更改图像的大小,只需再次上传到FTP即可完成,无需再次将其保存到数据库中。 但如果你仍然打算这样做,你可以看看BLOB, OLE Object

Pro and Cons 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?