如何使用PHP从MySQL数据库中存储和检索图像?
如何在MySQL中插入图像,然后使用PHP检索它?
我在这两个领域的经验都有限,我可以使用一些代码来让我开始解决这个问题。
如何在MySQL中插入图像,然后使用PHP检索它?
我在这两个领域的经验都有限,我可以使用一些代码来让我开始解决这个问题。
首先,创建一个MySQL表来存储图像,例如:
create table testblob (
image_id tinyint(3) not null default '0',
image_type varchar(25) not null default '',
image blob not null,
image_size varchar(25) not null default '',
image_ctgy varchar(25) not null default '',
image_name varchar(50) not null default ''
);
然后,您可以将映像写入数据库,如下所示:
/***
* All of the below MySQL_ commands can be easily
* translated to MySQLi_ with the additions as commented
***/
$imgData = file_get_contents($filename);
$size = getimagesize($filename);
mysql_connect("localhost", "$username", "$password");
mysql_select_db ("$dbname");
// mysqli
// $link = mysqli_connect("localhost", $username, $password,$dbname);
$sql = sprintf("INSERT INTO testblob
(image_type, image, image_size, image_name)
VALUES
('%s', '%s', '%d', '%s')",
/***
* For all mysqli_ functions below, the syntax is:
* mysqli_whartever($link, $functionContents);
***/
mysql_real_escape_string($size['mime']),
mysql_real_escape_string($imgData),
$size[3],
mysql_real_escape_string($_FILES['userfile']['name'])
);
mysql_query($sql);
您可以使用以下功能在网页中显示数据库中的图像:
$link = mysql_connect("localhost", "username", "password");
mysql_select_db("testblob");
$sql = "SELECT image FROM testblob WHERE image_id=0";
$result = mysql_query("$sql");
header("Content-type: image/jpeg");
echo mysql_result($result, 0);
mysql_close($link);
不是将图像存储在数据库中,而是将它们存储在磁盘的文件夹中,并将其位置存储在数据库中。