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

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

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
4065 0
php 输出带变量字符串(echo 函数的应用)
转自:  http://www.cnblogs.com/devcjq/articles/2306150.html 学习PHP从最简单的开始;echo, print   说明:echo "原来关联数组成员要这样输出 { $temp["user"] } \n";//关联数组元素输出时要用“{ }”...
640 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4477 0
如何使用Visual Studio Code调试PHP CLI应用和Web应用
在按照Jerry的公众号文章 什么?在SAP中国研究院里还需要会PHP开发? 进行XDebug在本地的配置之后,如果想使用Visual Studio Code而不是Eclipse来调试PHP应用,步骤也比较简单。
1025 0
轻松搭建基于 Serverless 的 ThinkPHP 应用
本文演示了如何从零开始搭建一个 Serverless 的 ThinkPHP 的博客应用。如果不想接触 Nginx、Linux 等复杂感念,而且想要以极低的成本托管自己的应用,本文会是一个很好的开始。
910 0
轻松搭建基于 Serverless 的 ThinkPHP 应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。
2456 0
Python轻应用有哪些过人之处?
Python轻应用就是使用Python语言来开发原本较复杂的物联网&嵌入式场景应用,使物联网应用开发也能获得Python开发的诸多优势。HaaS Python轻应用依托HaaS软硬件积木在兼容Micropython原生能力的同时新增了一套更高效的编程接口,那这些新增的编程接口到底带来了哪些不一样呢?
43 0
14426
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载