php 扩展之oci8在ThinkPHP上的应用-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

php 扩展之oci8在ThinkPHP上的应用

简介:

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


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

代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
     * 连接数据库方法
     * @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的函数可以看着手册来试一下。有新的感触会写在这里


本文转自 jackdongting 51CTO博客,原文链接:http://blog.51cto.com/10725691/1953081

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章
最新文章
相关文章