首页 > 开发 > ThinkPHP > 正文

thinkphp连接oracle数据库

2024-09-09 15:20:11
字体:
来源:转载
供稿:网友

第一次使用thinkphp的框架,第一次使用它连接oracle,用了两天时间,终于给连接上了,现在把这段痛苦的经历记录下来给后来人一些启发,请参考:http://www.thinkphp.cn/document/299.html 和http://it.oyksoft.com/post/6437/这两篇文章都写的不错.

1、使用php-oci-8扩展,将php.ini中的extension=php-oci8.dll取消注释

2、使用phpinfo(),查看oci8是否enabled,如果是,继续向下.

3、设置环境变量:TNS_ADMIN,这个环境变量设置tnsnames.ora的路径,其中tnsnames.ora的内容如下:

  1. testme =  
  2.     (DESCRIPTION=  
  3.         (ADDRESS_LIST=  
  4.             (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.199)(PORT=11521))  
  5.         )  
  6.         (CONNECT_DATA=(SERVICE_NAME=test)  
  7.         )  
  8.     ) 

4、设置配置文件

  1. application/common/conf/config.php中定义连接oracle 
  2.  'DB_TYPE'   => 'oracle'// 数据库类型 
  3.     'DB_HOST'   => '192.168.1.199'// 服务器地址 
  4.     'DB_NAME'   => 'testme'// 数据库名 
  5.     'DB_USER'   => 'root'// 用户名 
  6.     'DB_PWD'    => 'root'// 密码 
  7.     'DB_PORT'   => 1521, // 端口 

这里一定要注意,DB_Name是本机监听oracle 的名字,而不是服务名具体而言,就是tnsname.ora的名字,就是因为这个问题,导致我两天都没连通.

5、在Application/Home/Model/下建立表名+Model.class.php文件,文件内容为:

  1. namespace Home/Model; 
  2. use Think/Model; 
  3.  
  4. class 表名+Model extends Model 
  5. //内容可以为空,,如果涉及到关联表等一些逻辑的情况下,必须要填写 

至此,应该就可以通过了,在控制器的方法里写测试方法:

  1. $tree=new /Home/Model/TreeModel(); 
  2. $fields=$tree->select(); 
  3. dump($fields); 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选