0

我想将图像存储在 mysql 数据库中。图像通过 android 应用程序发送。问题是我真的不知道使用哪种方法将图像存储在 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 文件中。

我想知道哪种方法最好以及如何做到这一点?

4

3 回答 3

1

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

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

图像可以得到相当大的 1MB >。即使它是一个小图像,它仍然是不好的做法。您正在对您可以完全避免的数据库事务施加额外的影响。没有大型网站将图像存储在其数据库中。例如:Facebook 不这样做。这不是一个好主意。

躲开它。使用目录。

于 2013-10-20T05:16:04.580 回答
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?>">

你完成了。

于 2013-10-20T05:33:21.287 回答
0

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

于 2013-10-20T05:36:31.767 回答