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

相关文章
|
17天前
|
PHP 数据安全/隐私保护
PHP中的面向对象编程思想及应用
在当今互联网技术飞速发展的背景下,PHP作为一种广泛应用的服务器端脚本语言,其面向对象编程思想日益受到重视。本文将深入探讨PHP中的面向对象编程特点、优势以及实际应用,帮助读者更好地理解和运用面向对象编程思想。
|
2月前
|
运维 Unix Linux
Linux系统 PHP安装expect扩展详解
Linux系统 PHP安装expect扩展详解
37 5
|
3月前
|
Serverless PyTorch 算法框架/工具
Serverless应用引擎部署问题之下个节点不可用如何解决
Serverless部署是指将应用程序部署到无服务器架构中,该架构允许开发者专注于代码而无需关心底层服务器的运行和维护;针对Serverless部署过程中可能遇到的挑战,本合集提供全面的指南和最佳实践,帮助开发者顺利实现应用的无服务器化部署。
365 2
|
4天前
|
NoSQL Linux PHP
php添加redis扩展 linux和windos图文详解 l
php添加redis扩展 linux和windos图文详解 l
3 0
|
11天前
|
PHP
PHP 7.4的新特性及实践应用
【4月更文挑战第2天】本文主要介绍了PHP 7.4的新特性,并通过实例代码展示了如何在实际项目中应用这些新特性。文章首先简要回顾了PHP的发展历史,然后详细分析了PHP 7.4的新特性,包括预加载、数组解构、扩展的返回类型声明等。接下来,通过实际代码示例,演示了如何在项目中使用这些新特性。最后,总结了PHP 7.4新特性的优势和局限性,并展望了PHP未来的发展趋势。
|
23天前
|
安全 大数据 编译器
深入理解PHP 8.0的新特性及实践应用
【2月更文挑战第30天】随着PHP 8.0的发布,这一流行的服务器端脚本语言带来了许多令人兴奋的新特性和性能改进。本文将深入探讨PHP 8.0的关键新特性,包括JIT编译器、联合类型、名称参数、匹配表达式等,并通过实际代码示例展示如何利用这些新工具来编写更加高效、简洁和健壮的应用程序。无论您是PHP开发者还是对最新技术趋势感兴趣的技术爱好者,本文都将为您提供宝贵的信息和启发。
15 3
|
3月前
|
PHP Windows
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
|
3月前
|
缓存 弹性计算 NoSQL
您在使用Serverless应用引擎(SAE)部署PHP应用时遇到了性能问题
【1月更文挑战第12天】【1月更文挑战第57篇】您在使用Serverless应用引擎(SAE)部署PHP应用时遇到了性能问题
351 1