第一次使用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的内容如下:
- testme =
- (DESCRIPTION=
- (ADDRESS_LIST=
- (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.199)(PORT=11521))
- )
- (CONNECT_DATA=(SERVICE_NAME=test)
- )
- )
4、设置配置文件
- application/common/conf/config.php中定义连接oracle
- 'DB_TYPE' => 'oracle', // 数据库类型
- 'DB_HOST' => '192.168.1.199', // 服务器地址
- 'DB_NAME' => 'testme', // 数据库名
- 'DB_USER' => 'root', // 用户名
- 'DB_PWD' => 'root', // 密码
- 'DB_PORT' => 1521, // 端口
这里一定要注意,DB_Name是本机监听oracle 的名字,而不是服务名具体而言,就是tnsname.ora的名字,就是因为这个问题,导致我两天都没连通.
5、在Application/Home/Model/下建立表名+Model.class.php文件,文件内容为:
- namespace Home/Model;
- use Think/Model;
- class 表名+Model extends Model
- {
- //内容可以为空,,如果涉及到关联表等一些逻辑的情况下,必须要填写
- }
至此,应该就可以通过了,在控制器的方法里写测试方法:
- $tree=new /Home/Model/TreeModel();
- $fields=$tree->select();
- dump($fields);
新闻热点
疑难解答
图片精选