您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> php >> 正文

BS结构中使用PHP访问ORACLE LOB

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-2-2 我要参与讨论

  若设为-1则使用指定的variable变量的最大值;参数type可省略,其值有OCI_B_FILE(二进制文件)、OCI_B_CFILE(文本文件)、OCI_B_CLOB(文字LOB)、OCI_B_BLOB(位元LOB)及OCI_B_ROWID(ROWID)等数种。值得注意的是,如使用Oracle8中特有的新数据类型LOB/ROWID/BFILE时,需要先执行 OCINewDescriptor()函数,同时必须要将length参数设成 -1。

  函数OCINewDescriptor用于初始化新的LOB/FILE描述。该函数语法描述为:

  string OCINewDescriptor(int connection , int [type])

  其中的type同OCIBindByName函数中的type定义。

  必须的环境配置

  使用PHP的ORACLE8函数库需要Oracle8客户端库。在使用这个扩展之前,请确认你已经为Oracle 用户和WEB daemon 用户正确设置了 Oracle 环境变量。下面列出了需要设置的环境变量:

  ORACLE_HOME #ORACLE安装路径
ORACLE_SID # ORACLE数据库ID
LD_LIBRARY_PATH #LD联接库路径
NLS_LANG #ORALCE地区(语言)设置
ORA_NLS33 # ORA_NLS33路径
  为Linux环境下验证以上变量是否正确,最佳的办法就是分别在oracle用户与nobody下执行:

  # 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='".$_FILES['FJ1']['name'].
"',FILETYPE='".$_FILES['F1']['type']."',FILES=EMPTY_BLOB() where FILEID=".$newid." returning FILES into :lob");

  //绑定LOB变量

  OCIBindByName($stmt, ':lob', &$lob, -1, OCI_B_BLOB);

  OCIExecute($stmt, OCI_DEFAULT);//执行语句

  if($lob->savefile($F1)){//将表单提交的文件通过lob指针存入ORACLE数据库

  OCICommit($conn);

  //成功上传

  }else{

  //未能成功上传

  }

  OCIFree

上一页  [1] [2] [3] 下一页

在google里搜索更多BS结构中使用PHP访问ORACLE LOB

Google
Web www.51ec.org
  • 上一篇信息学院:

  • 下一篇信息学院:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    我来说两句 对此文章发表了评论
      昵 称: *必填    ·注册用户·
      评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
    评 论
    内 容

     
    评论列表 (最新 评论仅限网友观点!)

    供求信息




    | 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明