php连接oracle数据库的时候,其查询、更新、删除数据和MySQL类似,但是增加数据、特别是图片的时候就很不一样,这里面涉及到要创建一个blob对象,用blod对象去保存php图片,下面是当插入多张图片的时候的写法,直接上代码:

$conn = oci_connect('RGSUser', 'mycompany', '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = **.**.**.**(IP地址))(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = orcl)))', 'utf8');$sql = $sql."ID,"; $value = $value."sys_guid(),";$sql = $sql."LSH,"; $value = $value.":lsh".",";$sql = $sql."VERFYTYPE,"; $value = $value.":verfytype".",";$sql = $sql."IDENTIFICATIONNO,"; $value = $value.":id".",";$sql = $sql."REALNAME,"; $value = $value.":realname".",";$sql = $sql."PHONE,"; $value = $value.":phone".",";$sql = $sql."BINDDRIVELICENSE,"; if ($dabh!=null) { $value = $value."1,"; }else{ $value = $value."0,";}$sql = $sql."PICDATAIDENTIFACE,"; $value = $value."EMPTY_BLOB(),";$sql = $sql."PICDATAIDENTIFACEWATERMARK,"; $value =  $value."EMPTY_BLOB(),";$sql = $sql."PICDATAIDENTIBACK,"; $value = $value."EMPTY_BLOB(),";$sql = $sql."PICDATAIDENTIBACKWATERMARK,"; $value = $value."EMPTY_BLOB(),";$sql = $sql."PICDATAIDENTIPERSON,"; $value = $value."EMPTY_BLOB(),";$sql = $sql."PICDATAIDENTIPERSONWATERMARK,"; $value =   $value."EMPTY_BLOB(),";$sql = $sql."ISLOCK) VALUES ("; $value = $value."0".")";//这里很重要,相当于保存图片的字段指定了对应的标签$sql = $sql.$value." RETURNING PICDATAIDENTIFACE,PICDATAIDENTIFACEWATERMARK,PICDATAIDENTIBACK,PICDATAIDENTIBACKWATERMARK,PICDATAIDENTIPERSON,PICDATAIDENTIPERSONWATERMARK,PICDATAVEHICLELIC,PICDATAVEHICLELICWATERMARK INTO :PICDATAIDENTIFACE,:PICDATAIDENTIFACEWATERMARK,:PICDATAIDENTIBACK,:PICDATAIDENTIBACKWATERMARK,:PICDATAIDENTIPERSON,:PICDATAIDENTIPERSONWATERMARK,:PICDATAVEHICLELIC,:PICDATAVEHICLELICWATERMARK";/*
上面的拼接语句比较复杂,下面是拼接之后的结果
string(1072) "INSERT INTO T_RRGU_SUBMITION (ID,LSH,VERFYTYPE,IDENTIFICATIONNO,REALNAME,PHONE,BINDDRIVELICENSE,PICDATAIDENTIFACE,PICDATAIDENTIFACEWATERMARK,PICDATAIDENTIBACK,PICDATAIDENTIBACKWATERMARK,PICDATAIDENTIPERSON,PICDATAIDENTIPERSONWATERMARK,DABH,CARINFOHPHM,CARINFOHPZL,CARINFOFDJH,PICDATAVEHICLELIC,PICDATAVEHICLELICWATERMARK,CREATED,SOURCETYPE,SOURCEAPP,JUDGESTATE,PUBLISHREULTTYPE,PUBLISHSTATE,QUERYPASSWORD,CONTACTADDRESS,ISLOCK) VALUES (sys_guid(),:lsh,:verfytype,:id,:realname,:phone,1,EMPTY_BLOB(),EMPTY_BLOB(),EMPTY_BLOB(),EMPTY_BLOB(),EMPTY_BLOB(),EMPTY_BLOB(),:dabh,:hphm,:hpzl,:fdjh,EMPTY_BLOB(),EMPTY_BLOB(),sysdate,:targetSourcetype,:sourcetype,0,-1,0,:mm,:contactAddress,0) RETURNING PICDATAIDENTIFACE,PICDATAIDENTIFACEWATERMARK,PICDATAIDENTIBACK,PICDATAIDENTIBACKWATERMARK,PICDATAIDENTIPERSON,PICDATAIDENTIPERSONWATERMARK,PICDATAVEHICLELIC,PICDATAVEHICLELICWATERMARK INTO :PICDATAIDENTIFACE,:PICDATAIDENTIFACEWATERMARK,:PICDATAIDENTIBACK,:PICDATAIDENTIBACKWATERMARK,:PICDATAIDENTIPERSON,:PICDATAIDENTIPERSONWATERMARK,:PICDATAVEHICLELIC,:PICDATAVEHICLELICWATERMARK"
*/
// 创建blob对象并且绑定数据$stid = oci_parse($conn, $sql);$PICDATAIDENTIFACEblob            = oci_new_descriptor($conn,OCI_D_LOB);$PICDATAIDENTIFACEWATERMARKblob   = oci_new_descriptor($conn,OCI_D_LOB);$PICDATAIDENTIBACKblob            = oci_new_descriptor($conn,OCI_D_LOB);$PICDATAIDENTIBACKWATERMARKblob   = oci_new_descriptor($conn,OCI_D_LOB);$PICDATAIDENTIPERSONblob          = oci_new_descriptor($conn,OCI_D_LOB);$PICDATAIDENTIPERSONWATERMARKblob = oci_new_descriptor($conn,OCI_D_LOB);oci_bind_by_name($stid, ':lsh', $lsh);oci_bind_by_name($stid, ':verfytype', $verfytype);oci_bind_by_name($stid, ':id', $id);oci_bind_by_name($stid, ':realname', $realname);oci_bind_by_name($stid, ':phone', $phone);oci_bind_by_name($stid, ':targetSourcetype', $targetSourcetype);oci_bind_by_name($stid, ':sourcetype', $sourcetype);oci_bind_by_name($stid, ':mm', $mm);oci_bind_by_name($stid, ':contactAddress', $contactAddress);//执行语句
oci_execute($stid, OCI_DEFAULT);//blob对象保存对应的图片数据
if ($PICDATAIDENTIFACEblob->save(base64_decode($picIdentiFace)) && $PICDATAIDENTIFACEWATERMARKblob->save(base64_decode($picIdentiFaceWaterRemark)) && $PICDATAIDENTIBACKblob->save(base64_decode($picIdentiBack)) && $PICDATAIDENTIBACKWATERMARKblob->save(base64_decode($picIdentiBackWaterRemark)) && $PICDATAIDENTIPERSONblob->save(base64_decode($picIdentiWithUser)) && $PICDATAIDENTIPERSONWATERMARKblob->save(base64_decode($picIdentiWithUserWaterRemark))) {// On success, commit the transaction// var_dump("数据正确添加到数据库中");oci_commit($conn);oci_free_statement($stid);oci_close($conn);}else{$error = oci_error();echo $error;oci_rollback($conn);oci_free_statement($stid);oci_close($conn);$err = "内部错误!";
}

转载于:https://www.cnblogs.com/Caersi/p/7451007.html

php 连接oracle插入多张图片的方法相关推荐

  1. oracle18c打开pdb服务,SQLPLUS 连接 Oracle 18c CDB和PDB方法

    1 场景 sqlplus 连接oracle 数据库提示如下错误: sqlplus 连接cdb 提示无法识别连接的描述符 [oracle@www.cndba.cn admin]$ sqlplus sys ...

  2. java 应用连接oracle 超级慢的解决方法

    2019独角兽企业重金招聘Python工程师标准>>> 为了将应用迁移到云上,搞了几个星期. 最后测试的时候发现连接oracle非常慢,我们用的是阿里的druid,应用如果 长时间不 ...

  3. Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法

    Python 连接 Oracle 数据库 第一章:连接 oracle 数据与环境配置 ① 连接 oracle 数据库效果演示 ② oci 下载 ③ oci 配置 ④ 环境变量配置 ⑤ 检测是否有 or ...

  4. django 连接oracle的坑和解决方法

    oracle11g客户端,cx-oracle6.1安装好之后报错: 1.oci.dll is not the correct architecture 原因是64位系统安装了32位的oracle11g ...

  5. jmeter无法释放oracle连接,jmeter 连接ORACLE数据库错误及解决方法

    问题一: Response message: java.sql.SQLException: Cannot load JDBC driver class 'oracle.jdbc.driver.Orac ...

  6. oracle 水晶报表开发,水晶报表连接Oracle做数据报表笔记

    首先,新建一个水晶报表的文件,这个时候要给这个报表文件绑定一个oracle数据源, 选择右侧菜单的这个东西,选择"数据库专家",打开之后是这么一个界面: 选择建立新连接: 这个地方 ...

  7. oracle进行排序,oracle排序的几种方法

    1.创建数据库表 CREATE TABLE USER_INFO ( USERID      VARCHAR2(10 BYTE)                 NOT NULL, USERNAME   ...

  8. python导出结果_Python连接Oracle数据查询导出结果

    python连接oracle,需用用到模块cx_oracle,可以直接pip安装,如网络不好,可下载离线后本地安装 本人由于工作需要,期望便捷查询所得结果,且固定输出某个格式 具体代码如下: #! c ...

  9. CSDN博客排版技巧(MarkDown+HTML)-图片排版-同一行插入多张图片

    CSDN博客排版技巧(MarkDown + HTML) - 图片排版 - 同一行插入多张图片 目录 CSDN博客排版技巧(MarkDown + HTML) - 图片排版 - 同一行插入多张图片 目录 ...

最新文章

  1. TYVJ P1053 字符串的展开 Label:字符 水
  2. 【二分图】洛谷P1640连续攻击游戏
  3. 第九章 线程与内核对象的同步(6)
  4. SDCC 2015前端专场札记:Facebook、百度、腾讯、美团、饿了么等互联网公司的前端实战
  5. 怎样推断一棵二叉树是全然二叉树
  6. Maven之(二)Maven生命周期
  7. mysql分区跨机器_(转) mysql的分区技术 .
  8. SpringCloud Alibaba 框架下公司架构图
  9. ILP32和LP64数据模型
  10. 浅评-我所用的输入法
  11. 多元统计分析朱建平pdf_应用多元统计分析课后答案朱建平版
  12. 2022危险化学品生产单位安全生产管理人员考试题库及在线模拟考试
  13. python修改pdf元信息 metadata
  14. simulink电子节气门控制模型发动机电子节气门控制模型,有说明文档,教程。
  15. sass 使用入门教程
  16. 电商销售分析之制作销售看板
  17. 图片处理工具类ImageHelper
  18. 踩坑记32 vue3 拖拽边缘调整侧边栏宽度 拖拽条组件 宽度限制
  19. 分享一些小技巧吧,MATLAB中常见问题及解决方案
  20. iframe------------frameSet

热门文章

  1. 关于CPU Cache——程序猿需要知道的那些事
  2. 互斥锁、条件变量、自旋锁、读写锁
  3. ubuntu18.04利用fdisk找到磁盘空闲区,新建分区,挂载
  4. 8086汇编-做1到100的加法并显示结果
  5. 视觉平衡与物理平衡_怎样做好摄影中“视觉平衡”的那些事
  6. word2vec 评测 sg=0 sg=1 size=100 window=3
  7. Java通过FTP服务器上传下载文件的方法
  8. Beta阶段发布说明
  9. 洛谷【p2817】 宋荣子的城堡
  10. Centos常用快捷键