php 扩展之oci8在ThinkPHP上的应用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的函数可以看着手册来试一下。有新的感触会写在这里
本文出自 “一站式解决方案” 博客,请务必保留此出处http://10725691.blog.51cto.com/10715691/1953081
以上是关于php 扩展之oci8在ThinkPHP上的应用的主要内容,如果未能解决你的问题,请参考以下文章
在 Opensuse 环境中安装 oracle 和 php oracle 扩展(OCI8)
php5.6配置oracle数据库扩展 oci8(windows7系统64位)
在 OpenSUSE 上使用 PHP-FPM 安装 OCI8
markdown 安装Oracle PHP扩展(oracle OCI8) - 适用于Mac OS 10.12.6的即时客户端 - 自制环境 - 在PHP 7.2上