日期:2014-05-16  浏览次数:20470 次

ThinkPHP 连接Oracle数据库的详细教程(1)

一、 操作环境搭建
系统:Windows7 旗舰版 64位
PHP环境:wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24  32位版
下载地址:http://www.wampserver.com/en/


ThinkPHP:3.0正式版
下载地址:http://thinkphp.cn/down.html


Oracle:Orcale_11gR2  32位版
下载地址:http://www.oracle.com/technetwork/cn/indexes/downloads/index.html


数据库操作工具:PLSQL Developer 32位
下载地址:http://www.allroundautomations.com/plsqldev.html


开发工具:NetBeans IDE 7.1.2
下载地址:http://netbeans.org/downloads/index.html 下载单PHP的版本即可

说明:这里我反复强调软件的“位”,是因为这个很重要,一般情况下,我们系统是64位的,那么最好软件也用64位的,但是这里除过系统外,全部选择32位是有原因的,目的是为了配合PLSQL Developer和WAMP的PHP扩展。因为PLSQL Developer没有64位版。有的朋友说用64位Oracle数据库,装32位客户端就行,我不想这样做,如果不喜欢我的操作方式,可以绕道。当然了,如果你不使用PLSQL Developer,而选择使用Oracle 自带的SQL Developer,那么你全安装64位或32都是你自己的事。PHP连接Oracle数据库需要开启相应的扩展,这个扩展也需要数据库客户端的支持,因为php扩展也需要对应数据库客户端的位数。啰嗦完毕。

 

二、 环境配置
1, 操作系统的安装我就不说了,Oracle安装自己解决,NetBeans IDE 7.1.2也自己解决。

2, Wamp的安装我也不说了,不会的直接从DOS开始重新学习吧。

3, WAMP会把PHP的网页文件夹定义在安装wamp的文件夹下的www里面,我是安装在D盘,所以就是D:\WAMP\www。我们暂时不做别的自定义修改。启动wamp,系统托盘图标为绿色表示启动OK。

4, 打开localhost,看到如下界面,表示环境配置基本OK。为什么是基本了,因为还没有对Oracle的配置进行设置。

 

5, 打开如图的PHP扩展菜单,在绿色图标上,左键->PHP->PHP扩展,点击php-oci8的扩展,这时候这个WAMP会重启,等待重启后变绿,就表示OK。

6, 再次打开刚才的localhost页面,如果找到如图4的显示,就表示目前PHP已经支持Oracle了。

注意,我现在用的 wamp和oracle客户端都是32位,如果其中一个是64位,那么这个oci的扩展时打不开的,同时自动环境监测页面也没有oci8的显示。在不使用PL/SQL的前提下,必须是32位Oracle和32位WAMP搭配,64位Oracle和64位WAMP搭配,else请绕道。

 

三、 ThinkPHP配置
1, 把下载好的3.0正式版解压,项目中只需要ThinkPHP文件夹,这是核心。
2, 使用IDE新建一个项目,项目的文件夹为刚才的Wamp下的www文件夹,如果个人需要自定义别的文件夹,需要修改apache的配置文件,这里我不修改。
3, 将Thinkphp文件夹拷贝到项目文件夹中,新建一个php文件,命名index.php。
4, IDE中已经有这些文件的显示了,打开index.php,编写如下内容:

<?php
    define('APP_DEBUG', true);
    require './ThinkPHP/ThinkPHP.php';



5, 在浏览器中打开localhost/项目名/index.php,Thinkphp会帮你生成好相关文件和文件夹。
6, 对配置文件进行操作,找到:Conf文件夹下config.php文件,修改如下:

<?php

return array(
    'DB_TYPE' => 'Oracle', // 数据库类型
    'DB_HOST' => '192.168.0.8', // 服务器地址
    'DB_NAME' => 'orcl', // 数据库名
    'DB_USER' => 'test', // 用户名
    'DB_PWD' => 'test', // 密码
    'DB_PORT' => '1521', // 端口
);


Oracle数据库和mysql 的结构不同,一般默认安装的数据库名是orcl,如果你使用了多个数据库监听,那么就要根据具体的监听字段来设置。比如:我本机数据库坚挺是Orcl,同时监听另外一个外网的数据库,监听字符串为Orcl2,那么如果你需要连接这个外网数据库,那么需要写的数据库名就是orcl2。


7, 经过以上的配置,是已经可以连接oracle数据库了,但是在thinkphp的实际操作中有什么注意的地方,且听下回分解。