think-oracle扩展,php 扩展之oci8在ThinkPHP上的应用

最近突然想到了oci_8的拓展,PHP的一个拓展,有很多函数,翻了翻手册,看了看ThinkPHP的DB以及DBOracle的驱动文件

这才想明白其中的oci_connect和oci_pconnect以及oci_new_connect的来源

代码如下/**

* 连接数据库方法

* @access public

*/

public function connect($config='',$linkNum=0) {

if ( !isset($this->linkID[$linkNum]) ) {

if(empty($config))  $config = $this->config;

$pconnect   = !empty($config['params']['persist'])? $config['params']['persist']:$this->pconnect;

$conn = $pconnect ? 'oci_pconnect':'oci_new_connect';

$this->linkID[$linkNum] = $conn($config['username'], $config['password'],$config['database'],C('DB_CHARSET'));//modify by wyfeng at 2008.12.19

if (!$this->linkID[$linkNum]){

$this->error(false);

}

//这里的有两个函数oci_pconnect和oci_new_connect是oci8拓展里的,oci_connect也是

//例如:$conn = oci_connect('system','oracle','192.168.109.132:49161/xe');

//192.168.109.132:49161/xe--->这种字符串连接是简单连接,需要在oracle10g以上才能使用

//完整 Oracle Net 连接字符串提供了足够的连接灵活性。

//$db = MYDB2 = (DESCRIPTION =

//(ADDRESS = (PROTOCOL = TCP)

//(HOST = mymachine.mydomain)(PORT = 1521))

//(CONNECT_DATA=

//(SERVER = DEDICATED)

//(SERVICE_NAME = MYDB.AU.ORACLE.COM)))';

//oci8 扩展始终需要查找 Oracle 库和消息文件。找不到正确的文件将导致 PHP 返回 Oracle“ORA-12705:Cannot access NLS data files or invalid environment specified”。

// 标记连接成功

$this->connected = true;

//注销数据库安全信息

if(1 != C('DB_DEPLOY_TYPE')) unset($this->config);

}

return $this->linkID[$linkNum];

}

不是造轮子,而是去理解别人是如何来组织原生的写法,我觉得ThinkPHP的一些处理还是不错的。

最近开始觉得oci_8的函数可以看着手册来试一下。有新的感触会写在这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值