BLOB是一种MySQL数据类型,称为二进制大对象。正如它的名字它是用来存储类似MYSQL二进制和VARBINARY类型的、大量的字符串数据。
MySQL BLOB分类
MySQL BLOB类型 最大存储长度(字节)
TINYBLOB (1)(2 ^ 8)
blob ((2 ^ 16)1)
MEDIUMBLOB ((2 ^ 24)1)
LONGBLOB ((2 ^ 32)1)
在这篇教程中,我们学习如何使用
PHP插入和读取MySQL BLOB字段。
(PS:T不错的
PHP Q扣峮:276167802,验证:csl)
首先,我们需要创建一个MySQL表与一个BLOB字段。
1 2 3 4 5 6 | CREATE TABLE IF NOT EXISTS `output_images` (
`imageId` tinyint(3) NOT NULL AUTO_INCREMENT,
`imageType` varchar(25) NOT NULL DEFAULT '' ,
`imageData` mediumblob NOT NULL,
PRIMARY KEY (`imageId`)
)
|
登入後複製
插入数据
将图片信息插入MySQL BLOB字段中。
1、上传图像文件.
2、获取图像属性(图像数据、图像类型等等。)
3、图像文件插入BLOB。
PHP实现脚本:
imageUpload.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php
if ( count ( $_FILES ) > 0) {
if ( is_uploaded_file ( $_FILES [ 'userImage' ][ 'tmp_name' ])) {
mysql_connect( "localhost" , "root" , "" );
mysql_select_db ( "phppot_examples" );
$imgData = addslashes ( file_get_contents ( $_FILES [ 'userImage' ][ 'tmp_name' ]));
$imageProperties = getimageSize ( $_FILES [ 'userImage' ][ 'tmp_name' ]);
$sql = "INSERT INTO output_images(imageType ,imageData)
VALUES( '{$imageProperties[' mime ']}' , '{$imgData}' )";
$current_id = mysql_query( $sql ) or die ( "<b>Error:</b> Problem on Image Insert<br/>" .
mysql_error());
if (isset( $current_id )) {
header( "Location: listImages.php" );
}}}
?>
<HTML>
<HEAD>
<TITLE>Upload Image to MySQL BLOB</TITLE>
<link href= "imageStyles.css" rel= "stylesheet" type= "text/css" />
</HEAD>
<BODY>
</p>
</BODY>
</HTML>
|
登入後複製
执行这个脚本后上传表单将显示如下:
提交表单,PHP获取内容图像的文件并将其作为二进制数据存储到MySQL BLOB列。
显示图片
在浏览器上显示BLOB图像,我们必须:
1、从MySQL BLOB获得图像数据和类型
2、将类型设置为图像(image/jpg, image/gif, …)使用PHP header()函数。
3、输出图像内容。
imageView.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php
$conn = mysql_connect( "localhost" , "root" , "" );
mysql_select_db( "phppot_examples" ) or die (mysql_error());
if (isset( $_GET [ 'image_id' ])) {
$sql = "SELECT imageType,imageData FROM output_images WHERE imageId=" . $_GET [ 'image_id' ];
$result = mysql_query( "$sql" ) or die ( "<b>Error:</b> Problem on Retrieving Image BLOB<br/>"
. mysql_error());
$row = mysql_fetch_array( $result );
header( "Content-type: " . $row [ "imageType" ]);
echo $row [ "imageData" ];
}
mysql_close( $conn );
?>
|
登入後複製
上面的PHP代码将显示MySQL BLOB存储的图片。从HTML图像标签我们可以参考这个PHP文件与相应image_id作为参数。例如:
完成代码如下:
listImages.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <!--?php
$conn = mysql_connect( "localhost" , "root" , "" );
mysql_select_db( "phppot_examples" );
$sql = "SELECT imageId FROM output_images ORDER BY imageId DESC" ;
$result = mysql_query( $sql );
?-->
<title>List BLOB Images</title>
<link href= "imageStyles.css" rel= "stylesheet" type="text/css" />
</HEAD>
<BODY>
<?php
while ( $row = mysql_fetch_array( $result )) {
?>
" /><br/>
<?php
}
mysql_close( $conn );
?>
</BODY>
</HTML></pre><div class = " contentsignin" = "" >登入後複製
|
以上是本文关于PHP 教程之如何使用BLOB存取图片信息的实例,希望本文对广大php开发者有所帮助,感谢阅读本文。