在PHP中将图片存放ORACLE中
发布:smiling 来源: PHP粉丝网 添加日期:2013-12-08 19:03:54 浏览: 评论:0
我这里提供一个用PHP操纵blob字段的例子给你,希望能有所帮助,这个例子是把用户上传的图片文件存放到BLOB中,假设有一个表,结构如下:
- CREATE TABLE PICTURES (
- ID NUMBER,
- DESCRIPTION VARCHAR2(100),
- PICTURE BLOB
- );
然后是用来处理数据的PHP程序代码:
- <?php
- //建立Oracle数据库连接
- $conn = OCILogon($user, $password, $SID);
- //提交SQL语句给Oracle
- //在这里要注意的两点:一是用EMPTY_BLOB()函数。这是Oracle的内部函数,返回一个LOB的定位符。在插入LOB时,只能用这个办法先生成一个空的LOB定位符,然后对这个定位符进行操作。EMPTY_BLOB()函数是针对BLOB类型的,对应于CLOB的是EMPTY_CLOB()。二是RETURNING后面的部分,把picture返回,让PHP的OCI函数能够处理。
- $stmt = OCIParse($conn,"INSERT INTO PICTURES (id, description, picture)
- VALUES (pic_seq.NEXTVAL, '$description', EMPTY_BLOB()) RETURNING picture INTO :PICTURE");
- //生成一个本地LOB对象的描述符。注意函数的第二个参数:OCI_D_LOB,表示生成一个LOB对象。其它可能的还有OCI_D_FILE和OCI_D_ROWID,分别对应于BFILE和ROWID对象。
- $lob = OCINewDescriptor($conn, OCI_D_LOB);
- //将生成的LOB对象绑定到前面SQL语句返回的定位符上。
- OCIBindByName($stmt, ':PICTURE', &$lob, -1, OCI_B_BLOB);
- OCIExecute($stmt);
- //向LOB对象中存入数据。因为这里的源数据是一个文件,所以直接用LOB对象的savefile()方法。LOB对象的其它方法还有:save()和load(),分别用来保存和取出数据。但BFILE类型只有一个方法就是save()
- if($lob-〉savefile($lob_upload)){
- OCICommit($conn);
- echo "上传成功〈br〉";
- }else{
- echo "上传失败〈br〉";
- }
- //释放LOB对象
- OCIFreeDesc($lob);
- OCIFreeStatement($stmt);
- OCILogoff($conn);
- ?>
Tags: php图片 存放 ORACLE
- 上一篇:PHP中创建并处理图象
- 下一篇:PHP制作图形计数器的例子
相关文章
- ·PHP为图片添加水印的实例(2013-11-14)
- ·php 给图片加灰色透明效果(2013-11-14)
- ·PHP实现图片裁剪与缩放的几种方法(2014-06-23)
- ·php 以图片形式输出数字代码(2014-08-18)
- ·php给图片加水印实例函数(2014-08-18)
- ·php图片加中文水印实现代码(2014-08-19)
- ·php生成验证码图片学习笔记(2014-08-19)
- ·php常用图片处理类(2014-08-19)
- ·php 图片上传代码,支持水印,缩略图(2014-08-19)
- ·php图片上传实现代码(2014-08-19)
- ·php在图片上生成文字代码(2014-08-19)
- ·php图片增加中文与图片水印代码(2014-08-19)
- ·php图片水印代码 (2014-08-19)
- ·php图片处理类,生成缩略图,增加水印,获取图片信息(2014-08-19)
- ·php gif图片加水印代码(2014-08-19)
- ·php图片上传并生成缩略图效果(2014-08-19)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)