BS结构中使用PHP访问ORACLE LOB
Oracle8客户端库。在使用这个扩展之前,请确认你已经为Oracle 用户和WEB daemon 用户正确设置了 Oracle 环境变量。下面列出了需要设置的环境变量:
ORACLE_HOME #ORACLE安装路径 # env 根据输出的结果,判断上述环境变量是否一致。 在为WEB 服务器用户设置环境变量之后,你还需要将WEB 服务器用户(nobody、 www)加到oracle组中。 有关ORACLE8客户端和PHP安装设置的详细说明,请参考相关的技术手册。 应用范例 在PHP中上载并将文件存储在ORACLE LOB字段中的应用范例如下: //LOB对象初始化,获取PHP变量指针 $lob = OCINewDescriptor($conn, OCI_D_LOB); //向有关的文件记录表添加纪录,ORACLE SQL语法解释 $stmt = OCIParse($conn,"update T_FILE set FILENAME=''".
Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved 地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008 电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134 《中华人民共和国增值电信业务经营许可证》闽B2-20100024 ICP备案:闽ICP备05037997号
"'',FILETYPE=''".
Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved 地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008 电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134 《中华人民共和国增值电信业务经营许可证》闽B2-20100024 ICP备案:闽ICP备05037997号
//绑定LOB变量 OCIBindByName($stmt, '':lob'', &$lob, -1, OCI_B_BLOB); OCIExecute($stmt, OCI_DEFAULT);//执行语句 if($lob->savefile($F1)){//将表单提交的文件通过lob指针存入ORACLE数据库 OCICommit($conn); //成功上传 }else{ //未能成功上传 } OCIFreeDesc($lob); OCIFreeStatement($stmt); //结束 在PHP中将文件从数据库中提取并下载的应用范例如下: $stmt = OCIParse($conn,"SELECT * FROM T_ FILE WHERE FILEID =$ID"); OCIExecute($stmt); if(OCIFetchInto($stmt,$result,OCI_ASSOC+OCI_RETURN_LOBS)){ //输出文件类型信息供浏览器判断 header("Content-type: ".$result[FILETYPE]); //输出文件名,浏览器可提示是否打开或下载该文件 header("Content-Disposition: attachment; filename=".$result[FILENAME]); //以上关于header函数的使用可参考PHP manual,HTML的文件头信息请参考Internet RFC 2616。 //输出文件流,在此,浏览器获取文件内容,出现正在下载或直接打开文件的提示 echo $result[FILES]; } OCIFreeStatement($stmt); //结束
结束语 本文探讨PHP对ORACLE LOB访问的实现,仅是PHP在B/S结构系统中基本运用技术所涉及的一个方面。笔者曾对比了JDBC与PHP-OCI两者的执行效率,以JDBC为访问引擎的OAS HTTP Server(HTTP Server为apache2.0)的响应速度要逊于建立在Linux+Aache+PHP-OCI平台之上的WEB Server,这其中当然有Linux的出色表现,但不可否认的是,PHP与OCI的组合是非常优秀的。 由于缺乏ORACLE LOB与PHP ORACLE8函数库相结合运用的尝试,在开发信息管理系统中,为实现对大型数据文件的管理,PHP在此方面的功能并未得到有效的利用,希望本文对从事PHP数据库技术却遇到此方面难题的程序员会有所帮助。 |
||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |