PHP连接Oracle数据库操作技巧.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP连接Oracle数据库操作技巧

PHP连接Oracle数据库操作技巧   摘要: 本文主要介绍了PHP连接Oracle数据库过程中的常见问题,以及PHP、Oracle的配置环境,PHP操作Oracle数据库的具体过程。   关键词: PHPOracle数据库操作技巧      一、配置环境      访问Oracle 8以上的数据库时,我们需要用到Oracle 8 Call-Interface(OCI 8)。这个扩展模块需要Oracle 8的客户端函数库,因此要想连接远程Oracle数据库,我们还需要安装Oracle的客户端软件。(该客户端软件可以到Oracle网站http://www.省略上免费下载。)   我们可以这样配置环境:首先,确认安装了Oracle 8i客户端,然后用Net 8 Assistant(客户端软件提供)建立一个服务命名,注意服务名是Oracle数据库的sid,可查询initsid文件里的server_names得到。接着,在php.ini中把“;extension=php_oci8.dll”前面的注释符号“;”去掉,使php能够加载支持Oracle的模块,并把“php_oci8.dll”拷贝到windows 2000 server安装目录下的system 32子目录中,如“d:\winnt\system32”。最后,完成上述操作后,重新启动计算机。      二、用PHP操纵Oracle的LOB类型的数据      对PHP程序员来讲,使用PHP操纵Oracle的LOB类型的数据时,最令人头痛的莫过于使用LOB处理图片了。下面我分别介绍一下使用PHP操作BLOB和CLOB的一些技巧。   1.PHP操作BLOB   先建立一个表用于保存图片,用户上传的图片文件存放到BLOB中。   CREATE TABLE PICTURES (   ID NUMBER,IMGTYPE,VARCHAR2(60),   DESCRIPTION VARCHAR2(100),   PICTURE BLOB);   如果要实现ID的自动增加,再建一个SEQUENCE:   CREATE SEQUENCE PIC_SEQ;   (1)PHP程序――插入部分:   ?   $conn=OCILogon($username,$password,$sid);   在这里要注意两点:一是用EMPTY_BLOB()函数。这是Oracle的内部函数,返回一个LOB的定位符。在插入LOB时,我们只能用这个办法先生成一个空的LOB定位符,然后对这个定位符进行操作。EMPTY_BLOB()函数是针对BLOB类型的,对应于CLOB的是EMPTY_CLOB()。二是RETURNING后面的部分,将picture返回,让PHP的OCI函数能够处理。   $stmt=OCIparse($Conn,″INSERI INTO PICTURES Lid description,picture)   VALUES(pic-seq NEXTVAL,‘$description’,‘$Lob-uploodtype’,EMPTY_BLOB())   RETURNING picture INTO:PICTURE”);//生成一个本地LOB对象的描述符。   $lob=OCINewDescriptor($conn,OCI_D_LOB);   将生成的LOB对象绑定到前面SQL语句返回的定位符上。   OCIBindByName($stmt,′:PICTURE′,$lob,-1,OCI_B_BLOB);   OCIExecute($stmt);   LOB对象中存入数据。因为这里的源数据是一个文件,所以直接用LOB对象的Sawefile()方法。   (2)PHP程序――显示部分(getpicture.php):   ?   $conn=OCILogon($username,$password,$sid);   $stmt=OCIParse($conn,″SELECT imgtype,picture ID=$pictureid″);   if(OCIFetchInto($stmt,$result))   Header(″Content-type:″.$result);   echo $result-load();   }   可用strlen($result-load())查看图片的大小以确定图片是否正确存入到数据库。   ?   2.PHP操作CLOB   Oracle有一种数据类型叫VARCHAR2,用来表示不定长的字符串。VARCHAR2也是Oracle公司推荐使用的类型。但我们使用VARCHAR2时存在一个问题:最大只能表示4000个字符,也就相当于2000个汉字。如果程序中某个字符串的长度要大于2

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档