图像存储在mysql数据库中

时间:2013-10-20 04:49:51

标签: php android mysql

我想将图像存储在mysql数据库中。图像通过android app发送。问题是我真的不知道用于在msql数据库中存储图像的方法。

 1. Access image from file
 2.Store image in filesystem and store the url in the database
 3.Store the image in the database

存储这些图像后。我想将这些图像放到PHP文件中。

我想知道哪种方法最好,怎么做?

3 个答案:

答案 0 :(得分:1)

是的,您可以将图像存储在数据库中,但这不是明智的做法。

不要将图像存储在数据库中。 将图像存储在目录中,并存储对数据库中图像的引用。比如存储数据库中图像的路径或数据库中的图像名称。

图像可以变得非常大1MB>。即使它是一个小图像,它仍然是不好的做法。您可以完全避免在数据库事务上添加额外的命中。没有大型网站将图像存储在数据库中。例如:Facebook没有这样做。这不是一个好主意。

避免它。使用目录。

答案 1 :(得分:0)

首先创建一个照片表来存储图像的引用

    CREATE TABLE IF NOT EXISTS `photos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `img` varchar(255) NOT NULL,
  `sound` varchar(255) NOT NULL,
  `about` text NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `user_id` varchar(255) NOT NULL,
  `likes` int(255) NOT NULL,
  `down` int(255) NOT NULL,
  `seen` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;

然后在上传过程中将图像保存到文件夹后获取图像文件名并将其存储到表中,如下所示。

$save_image = mysql_query("INSERT INTO photos VALUES('','$originalFile','','$about','$data','$uid','0','0','0')") or die(mysql_error());

然后只需显示图像

    $p = mysql_query("select img from photos");
$p_f = mysql_fetch_assoc($p);

$img = $p_f['img']; 

并简单地显示图像

<img src="myFolder/<?php echo $img?>">

你完成了。

答案 2 :(得分:0)

在移动平台上,数据库调用很昂贵。意味着从数据库中获取需要更多周期,并且可能会降低应用程序的性能。显然你不希望这样。如果你想这样做 BLOB 就是你的答案。
有效方式
在数据库中添加绝对路径字段,然后从本地存储中获取图像。
这是最好的做法。