繁体   English   中英

图像存储在mysql数据库中

[英]Images store in mysql database

我想将图像存储在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文件。

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

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

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

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

躲开它。 使用目录。

首先创建一个照片表来存储图像的参考

    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?>">

而你完成了。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM