我想将图像存储在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文件中。
我想知道哪种方法最好以及如何做到这一点?
是的,您可以将图像存储在数据库中,但这是不可取和不好的做法。
不要将图像存储在数据库中。将图像存储在目录中,并将对图像的引用存储在数据库中。比如将图像的路径存储在数据库中,或者将图像名称存储在数据库中。
图像可以变得相当大 1MB>。即使这是一个小图像,它仍然是不好的做法。您正在对数据库事务进行额外的打击,这是您可以完全避免的。没有大型网站将图像存储在他们的数据库中。例如:Facebook不这样做。这不是一个好主意。
避免它。使用目录。
在移动平台上,数据库调用是昂贵的。这意味着从数据库获取需要更多周期,并且可能会降低应用程序的性能。显然你不想要这样。如果你想做那个BLOB仍然是你的答案。
高效方式
在数据库中添加绝对路径字段,并从本地存储中提取映像。
这是最佳做法。
首先创建一个照片表来存储图像的引用
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?>">
你完成了。