用于thinkphp5.1上的基于OCI的Oracle数据库驱动

浏览:1084 发布日期:2019/04/28 分类:ThinkPHP5专区 关键字: think-oracle oracle oci php thinkphp5.1
由于官方很久没有对 PDO_OCI 更新了,其驱动源码默认不支持 Oracle 11g 及以上版本的数据库,当然也可在编译前修改 config.m4 文件使之支持。但安装之后,PDO_OCI 使用中却存在问题,如果数据库中存储中文,查询后会出现字符截断,无法得到预期的结果。

本驱动[misuoka/think-oracle]https://github.com/misuoka/think-oracle使用基于 OCI API 封装的 PDO 接口数据库驱动 [misuoka/ocipdo]https://github.com/misuoka/ocipdo,用来对 Oracle 数据库进行操作。

根据 Oracle 数据库的特性,对 thinkphp5.1 的数据库访问层进行稍作修改,使之适用于 Oracle 数据库,以便在 thinkphp5.1 框架中以其原有方式完美操作 Oracle 数据库。

安装方法:

使用 composer 进行安装 composer require misuoka/think-oracle

配置方法:$config = [
    // 数据库类型
    'type'            => '\misuoka\think\Oracle',
    // Query类
    'query'           => '\misuoka\think\Query',  // 如果是在 database.php 中配置,不需要填写此项,但如果是这种用法 Db::connect($config),请填写此项
    // 服务器地址
    'hostname'        => '', // 填写数据库 IP 地址
    // 数据库名
    'database'        => '', // 数据库实例名称,如 ORCL
    // 用户名
    'username'        => '', // 用户名
    // 密码
    'password'        => '', // 密码
    // 端口
    'hostport'        => '', // 端口号,如 1521
    // 连接dsn
    'dsn'             => '', // 不填写,如果填写,则数据库连接将以此为连接串,将忽略除账号密码外的参数
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => '',
    // 自增序列名前缀(新增的,针对 Oracle 特有的)
    'prefix_sequence' => '',
];
配置完成后,即可在PHP业务代码中,按 thinkphp5.1 官方开发手册的方法使用。
最佳答案
评论( 相关
后面还有条评论,点击查看>>