|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为函数实在是太多了,慢慢的你就会知道,知道有这个函数就可以。mysql 设置数据库
咱们凡是在数据库中所利用的文本或整数类型的字段和需求用来保留图片的字段的分歧的地方就在于二者所需求保留的数据量分歧。MySQL数据库利用专门的字段来保留大容量的数据,数据类型为BLOB。
MySQL数据库为BLOB做出的界说以下:BLOB数据类型是一种大型的二进制对象,可以保留可变数目的数据。BLOB具有四品种型,分离是TINYBLOB,BLOB, MEDIUMBLOB 和LONGBLOB,区分在于各自所可以保留的最大数据长度分歧。
在引见了所需求利用的数据类型以后,咱们可使用以下语句创立保留图像的数据表。
CREATE TABLE Images ( PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY, Image BLOB );
编写上传剧本
关于若何完成文件的上传,咱们在这里就不再引见了,感乐趣的读者可以拜见“网页陶吧”内的相干文章。如今,咱们次要来看一下若何吸收上传文件并将其存入到MySQL数据库中。详细的剧本代码以下,个中咱们假定文件上传域的称号为Picture。
<?
If($Picture != "none") {
$PSize = filesize($Picture);
$mysqlPicture = addslashes(fread(fopen($Picture, "r"), $PSize));
mysql_connect($host,$username,$password) or die("Unable to connect to SQL server");
@mysql_select_db($db) or die("Unable to select database");
mysql_query("INSERT INTO Images (Image) VALUES ($mysqlPicture)") or die("Cant Perform Query");
}else {
echo"You did not upload any picture";
}
?>
如许,咱们就能够胜利的把图片保留到数据库中。假如在将图片拔出MySQL的过程当中呈现成绩,可以反省一下MySQL数据库所答应的最大数据包的巨细。假如设置值太小的话,咱们会在数据库的毛病日记中找到响应的纪录。
上面,咱们复杂申明一下上述剧本法式。起首,咱们经由过程“If($Picture != "none")”反省是不是有文件被上传。然后,利用addslashes()函数防止呈现数据格局毛病。最初,毗连MySQL,选择数据库并拔出图片。
显示图片
在晓得了若何将图? 入数据库以后,咱们就需求思索如何才干从数据库中掏出图片并在HTML页面中显示出来。这个进程要略微庞杂一些,上面咱们就来引见一下完成进程。
由于PHP显示图片需求发送响应的标头,所以咱们就会晤临如许一个成绩,那就是一次只能显示一副图片,由于咱们没法在收回标头以后再发送其它的标头。
为了无效的处理这一成绩,咱们编写了两个文件。个中,第一个文件作为HTML页面的模板,定位图片的显示地位。第二个文件则被用来从数据库中实践输入文件流,作为<IMG>标签的SRC属性。
第一个文件的复杂模式可以以下:
<HTML> <BODY>
<?
mysql_connect($host,$username,$password) or die("Unable to connect to SQL server");
@mysql_select_db($db) or die("Unable to select database");
$result=mysql_query("SELECT * FROM Images") or die("Cant Perform Query");
While($row=mysql_fetch_object($result)) {
echo "<IMG SRC=\"Second.php3? PicNum=$row->PicNum\">";
} ?>
</BODY> </HTML>
当HTML页面被阅读时,每显示一副图片就会挪用一次Second.php3文件。当第二个文件被挪用时会传入响应的Picture ID,咱们可以借此从数据库中取回对应的图片并显示。
Second.php3文件以下:
<?
$result=mysql_query("SELECT * FROM Images WHERE PicNum=$PicNum") or die("Cant perform Query");
$row=mysql_fetch_object($result);
Header( "Content-type: image/gif");
echo $row->Image;
?>
到此,咱们就引见完了利用PHP和MySQL保留和显示图片的全进程。文中所举得都是一些最复杂的实例,读者可以依据本人的实践需求到场其它一些功效,使全部法式加倍完美。 会有很多高手的鼓励,新手的支持,慢慢你劲头就十足,有更多的信心和兴趣去学。 |
|