php 连接oracle插入多张图片的方法
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插入多张图片的方法相关推荐
- oracle18c打开pdb服务,SQLPLUS 连接 Oracle 18c CDB和PDB方法
1 场景 sqlplus 连接oracle 数据库提示如下错误: sqlplus 连接cdb 提示无法识别连接的描述符 [oracle@www.cndba.cn admin]$ sqlplus sys ...
- java 应用连接oracle 超级慢的解决方法
2019独角兽企业重金招聘Python工程师标准>>> 为了将应用迁移到云上,搞了几个星期. 最后测试的时候发现连接oracle非常慢,我们用的是阿里的druid,应用如果 长时间不 ...
- Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法
Python 连接 Oracle 数据库 第一章:连接 oracle 数据与环境配置 ① 连接 oracle 数据库效果演示 ② oci 下载 ③ oci 配置 ④ 环境变量配置 ⑤ 检测是否有 or ...
- django 连接oracle的坑和解决方法
oracle11g客户端,cx-oracle6.1安装好之后报错: 1.oci.dll is not the correct architecture 原因是64位系统安装了32位的oracle11g ...
- jmeter无法释放oracle连接,jmeter 连接ORACLE数据库错误及解决方法
问题一: Response message: java.sql.SQLException: Cannot load JDBC driver class 'oracle.jdbc.driver.Orac ...
- oracle 水晶报表开发,水晶报表连接Oracle做数据报表笔记
首先,新建一个水晶报表的文件,这个时候要给这个报表文件绑定一个oracle数据源, 选择右侧菜单的这个东西,选择"数据库专家",打开之后是这么一个界面: 选择建立新连接: 这个地方 ...
- oracle进行排序,oracle排序的几种方法
1.创建数据库表 CREATE TABLE USER_INFO ( USERID VARCHAR2(10 BYTE) NOT NULL, USERNAME ...
- python导出结果_Python连接Oracle数据查询导出结果
python连接oracle,需用用到模块cx_oracle,可以直接pip安装,如网络不好,可下载离线后本地安装 本人由于工作需要,期望便捷查询所得结果,且固定输出某个格式 具体代码如下: #! c ...
- CSDN博客排版技巧(MarkDown+HTML)-图片排版-同一行插入多张图片
CSDN博客排版技巧(MarkDown + HTML) - 图片排版 - 同一行插入多张图片 目录 CSDN博客排版技巧(MarkDown + HTML) - 图片排版 - 同一行插入多张图片 目录 ...
最新文章
- TYVJ P1053 字符串的展开 Label:字符 水
- 【二分图】洛谷P1640连续攻击游戏
- 第九章 线程与内核对象的同步(6)
- SDCC 2015前端专场札记:Facebook、百度、腾讯、美团、饿了么等互联网公司的前端实战
- 怎样推断一棵二叉树是全然二叉树
- Maven之(二)Maven生命周期
- mysql分区跨机器_(转) mysql的分区技术 .
- SpringCloud Alibaba 框架下公司架构图
- ILP32和LP64数据模型
- 浅评-我所用的输入法
- 多元统计分析朱建平pdf_应用多元统计分析课后答案朱建平版
- 2022危险化学品生产单位安全生产管理人员考试题库及在线模拟考试
- python修改pdf元信息 metadata
- simulink电子节气门控制模型发动机电子节气门控制模型,有说明文档,教程。
- sass 使用入门教程
- 电商销售分析之制作销售看板
- 图片处理工具类ImageHelper
- 踩坑记32 vue3 拖拽边缘调整侧边栏宽度 拖拽条组件 宽度限制
- 分享一些小技巧吧,MATLAB中常见问题及解决方案
- iframe------------frameSet