多数大学生出来选择的工作和专业无关
首页 > 专业知识

PHP管理Oracle LOB数据的相关办法讲解

时间:2018-06-06 19:30:18 [来源]:郑州PHP培训学校

   PHP管理Oracle LOB数据的相关办法讲解

  我们将会在本文中以几个代码示例,卫冕大家详细讲解PHP管理Oracle LOB数据的具体操作,希望对又需要的朋友有所帮助。
  我们都知道PHP语言与数据库的管理运用是紧密相连的,今天我们将会为大家详细介绍有关PHP管理Oracle LOB数据的办法。用过Oracle的人都知道,Oracle有一种数据类型叫VARCHAR2,用来表示不定长的字符串。
  VARCHAR2也是Oracle公司推荐使用的 类型。但使用VARCHAR2有个问题:最大只能表示4000个字符,也就相当于2000个汉字。如果你的程序中某个字符的值要大于20002个汉字,用 VARCHAR2就不能满足要求了。这时候,你有两个选择,一是用多个VARCHAR2来表示,二是用LOB字段。这里我们来看看第二个办法。
  先来大体了解一下Oracle的LOB字段。Oracle的LOB类型分为三种:BLOB,CLOB和BFILE。CLOB称为字符LOB,BLOB和 BFILE是用来存储二进制数据的。CLOB和BLOB的最大长度是4GB,它们把值存放在Oracle数据库中。BFILE和BLOB类似,但它把数据 放在外部的文件中,所以它又称为外部BLOB(External BLOB)。
  我想,我们对MYSQL应该都不会陌生。MYSQL中也有类似的数据类型,如TEXT和BLOB。在PHP的 MYSQL函数中,对TEXT/BLOB的操作是直接的,就象其它类型的数据一样。但在Oracle中,情况就不一样了。Oracle把LOB当作一种特 殊的数据类型来处理,在操作上不能用常规的方法。比如,不能在INSERT语句中直接把值插入到LOB字段中,也不能用LIKE进行查找。
  下面就通过几个PHP管理Oracle LOB数据的例子来说明如何用PHP的OCI函数来插入,取出和查询LOB数据。
  插入
  不能直接用INSERT语句向LOB字段中插入值。一般情况下,有如下的几步:
  1、先分析一个INSERT语句,返回一个LOB的描述符2、用OCI函数生成一个本地的LOB对象
  3、将LOB对象绑定到LOB描述符上
  4、执行INSERT语句
  5、给LOB对象赋值
  6、释放LOB对象和SQL语句句柄
  下面的这个PHP管理Oracle LOB数据的例子是把用户上传的图片文件存放到BLOB(或BFILE中,操作稍有不同)中。首先要建一个表,结构如下:
  CREATE TABLE PICTURES (
  ID NUMBER,
  DESCRIPTION VARCHAR2(100),
  MIME VARCHAR2(128),
  PICTURE BLOB
  );
  如果要实现ID的自动增加,再建一个SEQUENCE:
  CREATE SEQUENCE PIC_SEQ;
  PHP字符串原理的示例讲解
  PHP字符串原理实质上就是字符数组假设我们定义一个字符串,我们将会在下文中以代码示例的方式,为大家具体讲解这一原理。
  在运用PHP语言进行实际编程中,经常会用到字符串,那么究竟这些字符串代表着什么意思呢?我们今天就为大家介绍有关PHP字符串原理的相关介绍,希望大家能够通过本文介绍的内容,详尽掌握PHP字符串的运用。
  其实PHP字符串原理就是字符数组假设我们定义一个字符串< ?
  $string ="hello world";
  /*
 
  这个字符串是由 h , e , l , l , o , 空格
  , w ,o,r,l,d 这几个字符组成 至于是以什么
  结尾的我现在能了解, 可能需要查看PHP原代码才能发掘*/
  //那我以上所说的有什么根据呢?下面可以测试echo $string[2];
  //显示出第3个字符 l ,我们可以尝试改变
  $string[2]="A";
  //更改其中的 一个字符;
  echo $string;
  // 得到 heAlo world
  //那么我们可以尝试为 $string[2] 更改为字符串$string[2]="AAAAAA";
  //测试 看看PHP会不会把 其后面的字符覆盖
  echo $string;
  // 得到 heAlo world ,呵呵 看来PHP做了安全处理?>
  怎么样,通过以上代码示例,是否可以清晰的理解PHP字符串原理呢?大家可以在往后的实际操作中慢慢体会。
  PHP模板Smarty的具体使用指南
  PHP模板Smarty在进行安装时首先要下载PHP模板Smarty,然后再根据本文介绍的步骤一一操作,就能完成正确的操作步骤。
  PHP语言是一门经常用到的计算机高级语言。我们在这里将为大家具体介绍PHP模板Smarty的安装于使用方法,希望对大家有所帮助。在利用PHP开发大型、交互式网站时,我们时常遇到与美工如何合作的问题。
  通常我们的解决方法是由美工设计页面后交付程序设计者进行开发,再交付美工对页面进行改善,来回重复好几回,如果遇到程序设计者对HTML不熟悉,对双方来说更是个痛苦的差事,效率也更低下,这时候如果有模板支持就显得非常重要。
  我们知道PHP语言作为开源社区的一员,提供了各种模板引擎,如FastTemplate,Smarty,SimpleTemplate等,而Smarty是现在使用得比较多的PHP模板引擎,今天和大家分享在PHP开发中如何安装与使用PHP模板Smarty,也算是对Smarty的入门学习。
  准备工作
  1、选择安装Smarty的目录
  如果拥有服务器权限,考虑到安全性可以选择将Smarty安装在WEB程序文档目录之外的地方,然后通过将Smarty安装目录地址包含在PHP.INI文件中的include_path选项。
  如果是虚拟主机权限,或者好几个项目,可以将Smarty安装在各自的项目目录中,在require Smarty类文件,也可以使用Smarty模板引擎。当然为了安全考虑,你可以通过apache禁止相关目录访问。
  另外这两种PHP模板Smarty安装方式在移植性方面有所区别,第一种方式需要保证每台服务器有相同的Smarty配置,第二种方式对每台服务器配置没有影响。你可以根据各自的需要选择Smarty的安装方式。
  2、下载Smarty,,我选择的是Smarty-2.6.25
  PHP模板Smarty安装步骤
  1、解压下载的Smarty-2.6.25压缩包
  2、拷贝libs文件夹到WEB程序目录下,我的目录为test\smartyLinux下的安装方法可以参考这里。
  在安装完Smarty模板后,我们开始简单使用Smarty。
  PHP模板Smarty使用
  1、创建相关目录
  由于在使用Smarty的过程中,Smarty会生成编译的模板文件以及其他配置文件、缓存文件,我们需要创建相关的目录。我在test\smarty目录下,另外创建了tpls目录,并在tpls目录下创建templates、templates_c、configs、cache目录。为什么需要创建这些目录呢?打开Smarty.class.php文件,我们可以看到Smarty类定义了部分的成员属性。
  $template_dir:设定所有模板文件都需要放置的目录地址。默认情况下,目录是:“./templates”,也就是在PHP执行程序同一个目录下寻找该模板目录。
  $compile_dir:设定Smarty编译过的所有模板文件的存放目录地址。默认目录是:“./templates_c”,也就是在PHP执行程序同一个目录下寻找该编译目录。如果你在Linux服务器上创建这个目录,你还需要修改此目录的权限,使它有写的权限。
  $config_dir:设定用于存放模板特殊配置文件的目录,默认目录是:“./configs”,也就是在PHP执行程序同一个目录下寻找该配置目录。
  $cache_dir:在启动缓存特性的情况下,这个属性所指定的目录中放置PHP模板Smarty缓存的所有模板。默认目录是:”./cache”,也就是在PHP执行程序同一个目录下寻找该缓存目录。你也可以用你自定义的缓存处理函数来控制缓存文件,它将会忽略这项设置。同样如果你在Linux服务器上创建这个目录,你还需要修改此目录的权限,使它有写的权限。
  为了系统安全和移植性考虑,建议不要将这些目录建立在PHP执行程序同一目录下,可以将它建立在PHP执行程序目录之外,如果已建立在PHP执行程序同一目录下,可以通过Apache做好目录限制访问工作。

上一篇:国外优秀开源PHP建站程序一览

下一篇:PHP字符集编码出现乱码的解决办法