上次遇到过这个问题,读写方式不一样,当时找了很多资料。
这次找到上次写的代码,本身没有什么问题,但是当时只读写了一个字段,这里续写一下遇到多个字段的写法
官方文档地址:http://www.oracle.com/technetwork/articles/fuecks-lobs-095315.html
但是里面没有写入和更新多个字段的方式
写入多个字段,只与returning的语法有关。
因此,可以搜索一下returning在oracle中的用法。
这里贴一点代码:
insert into clinical_help_articles(uuid,title,classify_id,is_public,author,author_ip,created,updated,attachment,content,test) values('A_584a2b366a8878.40825359','dsdf','C_584a07be8a2e25.06636407','1','4ea520babf4ea','','1481255734','1481255734','',EMPTY_CLOB(),EMPTY_BLOB()) RETURNING content,test INTO :content_blob,:test_blob
下面是更新的。
update clinical_help_articles set title='dsdf',classify_id='C_584a07be8a2e25.06636407',updated='1481255782',attachment='',content=EMPTY_CLOB(),test=EMPTY_BLOB() where (uuid='A_584a2b366a8878.40825359') RETURNING content,test INTO :content_blob,:test_blob
由于php端是写在一个公共类里的,这里就不贴出来了。方法同官方文档,只是需要构造一下多个clob对象。
另外就是读取的时候,如果要同时支持普通字段和clob及blob字段,在PHP手册里,有例子,可能我们没太注意。
oci_fetch_array($this->log_dao_rs,OCI_RETURN_NULLS+OCI_RETURN_LOBS);
这个函数第二个参数支持上面这种写法,用上就可以同时支持普通字段及clob等字段了。
------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------
转载请注明本文标题和链接:《续写PHP读写Oracle的clob及blob字段》
发表评论