查看TP文档时发现,是支持多种数据库的,只需要在配置文件内做好相关配置就好了。
关于Oracle初步的使用发现Oracle没有库的概念有的只是相关的用户,关于Oracle的安装可以去百度或者Google进行搜索即可。
开启扩展
关于PHP开启Oracle扩展的方法,在php.ini文件内将;extension=oci8_11g;
的注释;
去掉即可,如果没有这个的话可以搜索oci8_
找到相关的字样打开即可,如果没有可以去PHP官方扩展找对应你的版本的扩展,安装完成之后记得重启电脑(至少我的重启相关的环境是无效的)
TP配置
查看TP6文档,可以看到只需要在配置的数据库类型里面换为Oracle即可:
TYPE = oracle # 数据库类型 HOSTNAME = localhost DATABASE = ORCL ### 这个填写你初始安装Oracle时的那个名字 一般上是不做更改的 USERNAME = system ### 你的账户名一般上来说都是system PASSWORD = 123456 HOSTPORT = 1521 ### 端口号 CHARSET = utf8
.env数据库配置信息如下
注意
初次接触Oracle没有去了解该数据库的相关规则,导致在使用时发现出现了很多很多的错误,譬如:
- 942 OCIStmtExecute: ORA-00942: 表或视图不存在
- 904 OCIStmtExecute: ORA-00904: “ADACC”: 标识符无效
…
TP框架默认的会将字段转为大写,通过相关查找发现Oracle的表名和字段名默认都是大写的,由于我用的是Navicate,创建表的时候和新建字段的时候是小写,而Navicate自动将我们新建的表名和字段名加上了""
,所以在使用小写的时候必须带上""
来让框架不进行转义,让他识别就是小写即可:
$map = [ ['"adacc"', "=", $data['adacc']], ['"adpwd"', "=", $data['adpwd']] ]; return self::where($map)->count();