PHP操作Mysql中的BLOB字段

1、MySQL中BLOB字段类型

BLOB类型的字段用于存储二进制数据。

MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。

MySQL的四种BLOB类型

TinyBlob:  最大 255字节

Blob:      最大 65K

MediumBlob:最大 16M

LongBlob:  最大 4G

注意:如果你存储的文件过大,数据库的性能会下降很多。

2、PHP操作BLOB案例

[1]操作新闻内容

<?php
	mysql_connect( "localhost", "root", "password"); //连接数据库
	mysql_select_db( "database"); //选定数据库
	//数据插入:
	$CONTENT="测试内容";   //$CONTENT为新闻内容
	$COMPRESS_CONTENT = bin2hex(gzcompress($CONTENT));
	$result=mysql_query( "insert into news (content) value ('$COMPRESS_CONTENT')");//数据插入到数据库news表中

	//展示:
	$query = "select data from testtable where filename=$filename";
	$result = mysql_query($query);
	[email protected]($result["COMPRESS_CONTENT"]);
	echo $COMPRESS_CONTENT;
?>

[2]存储图片

<?php
mysql_connect( "localhost", "root", "password"); //连接数据库
mysql_select_db( "database"); //选定数据库
   //存储:
$filename="" //这里填入图片路径
$COMPRESS_CONTENT = addslashes(fread(fopen($filename, "r"), filesize($filename)));//打开文件并规范化数据存入变量$data中
$result=mysql_query( "insert into news (content) value ('$COMPRESS_CONTENT')");//数据插入到数据库test表中

//展示:
ob_end_clean();
Header( "Content-type: image/gif");
$query = "select data from testtable where filename=$filename";
$result = mysql_query($query);
echo $result["COMPRESS_CONTENT"];
?>
时间: 2024-11-08 09:49:48

PHP操作Mysql中的BLOB字段的相关文章

mysql怎么储存长字符-----MySQL text与blob字段类型的不同之处

字段类型选text型 或blog 区别见: 以下的文章主要介绍的是MySQL text与blob字段类型的不同之处的比较,同时本文也有对MySQL text与blob字段类型的实际应用的介绍,如果你对MySQL text与blob字段类型相关的实际操作有兴趣的话,你就可以对以下的文章点击观看了. 1. blob是二进制大对象,可以容纳可变量数量的数据,其中blob分为4中类型:TINYBLOB,BLOB,mediumblob和LongBlob,他们容纳的长度是不同的. Text同样也分为四种类型

mysql中的null字段值的处理及大小写问题

在MySQL中,NULL字段的处理,需要注意,当在处理查询条件中有NULL,很有可能你得到的值不是想要的,因为,在MySQL中,判断NULL值相等(=)或者不等(!=)都会返回false.主要出现在常见的SELECT以及WHERE字句中. 为了处理这种特殊的情况,MySQL提供了如下的关键字进行特殊处理: IS NULL: 当列的值是NULL,此运算符返回true. IS NOT NULL: 当列的值不为NULL, 运算符返回true. <=>: 比较操作符(不同于=运算符),当比较的的两个值

Mysql中自增字段(AUTO_INCREMENT)的一些常识

Mysql中自增字段(AUTO_INCREMENT)的一些常识 在系统开发过程中,我们经常要用到唯一编号.使用过mysql的人都应该知道,mysql有一个定义列为自增的属性:AUTO_INCREMENT. 指定了AUTO_INCREMENT的列必须要建索引,不然会报错,索引可以为主键索引,当然也可以为非主键索引.(不一定要做主键) 1 2 3 mysql> create table t4 (id int auto_increment); ERROR 1075 (42000): Incorrect

mysql中的Blob

今天再写一个关于附件存取的DEMO的时候不小心就出现了BUG,说是长度不够. 用的数据库是MySql,保存的字段类型为BLOB,就放入一张小小的照片就出数据太大,长度不够的BUG,我就差异了,BLOB不是存二进制数据的吗?怎么会存这么小小的一个文件就出BUG.后来查了一下资料才知道. BLOB介绍 BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器.在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型.BLOB是一 个大文件,典型的BLO

mysql中的保留字段

摘要 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versio····这句话对于咱们并不陌生,无非就是多了","之类的问题.但是你如果无意之中添加了一个mysql中的保留字段作为数据库中存贮的字段名,悲剧就这样发生了. mysql 保留字 目录[-] mysql的保留字段 前几天因为功能的临时变更,需要给数据表添加一个字段用来区别导入的批次,我就

mysql中多个字段共同确定唯一性

create table tbl_table ( id integer not null auto_increment, fname varchar(255), lname varchar(255), CONSTRAINT tbl_table PRIMARY KEY (id), unique (fname,lname) ) mysql中多个字段共同确定唯一性

mysql中以blob形式存储的图片文件 通过ajax方式传输 在js中设置成img控件的src

第一步,读取blob数据, 第二步,将blob数据转换成byte数组 第三步,将byte数据进行base64加密转换成字符串并回传 第四步,接收字符串 第五步,将img控件的src设置成"data:image/jpeg;base64,"+接收的字符串; 相关代码: java: public String getAccountImg(String alias) { String sql = "SELECT imgrawdata FROM wx_account WHERE ali

mysql中的保留字段,说多了都是泪啊!!!!

前几天因为功能的临时变更,需要给数据表添加一个字段用来区别导入的批次,我就在mysql中添加了group字段,没想到我的噩梦就此展开····· 本来程序已经接近收尾,本想着今早来公司给程序来个欢乐的结尾,没想到····每次导入excel表总是提示我sql语句错误,我变在sql语句上添添减减,也没有把错误搞定,整整一个上午外加下午两个小时,简直已经到了抓狂的程度.简直要跪地苦思冥想,但是还是没有搞定这个错误. 把问题放在一边,继续搞其他的东西····当在写一个group by 语句时,突然意识到,

Django的API操作mysql中常用的语句

[背景] 增/删/改/查 如何操作数据库 导入数据库的模型 In [23]: from blog.models import People [增加记录]--三种方法 方法一: 直接使用数据模对象的create函数 In [24]: People.objects.create(name='shuaige') Out[24]: <People: People object> 注意:创建成功返回对象地址 方法二: In [6]: record = People(name='choubaguai')