首先确定你的PHP已经支持oracle数据库的链接。PHP需要安装OCI8扩展。

确定PHP可以链接ORACLE数据库之后。我们使用composer安装laravel支持oracle链接的插件 yajra/laravel-oci8

一:使用composer安装 yajra/laravel-oci8

1:运行如下命令:

composer require yajra/laravel-oci8

2:安装过程中可能会报错,不要纠结那些报错,最简单的解决办法:

试试

php artisan cache:clear

如果这不起作用,请删除你的vendor目录和composer.lock文件并重新运行composer install。

二:配置laravel使用oracle数据库

首先说明一下:我这里主要使用的是mysql数据库,oracle数据库只作为偶尔取数据使用。

1:修改在config文件夹下的database.php

如果你想默认使用oracle数据库,则需要修改:’default’ => env(‘DB_CONNECTION’, ‘oracle’),

但是我这里就不需要了。

增加如下:

‘oracle‘ => [

‘driver‘ => ‘oracle‘,

‘tns‘ => env(‘DB_TNS‘, ‘‘),

‘host‘ => env(‘DB_HOST‘, ‘10.0.101.177‘),

‘port‘ => env(‘DB_PORT‘, ‘1521‘),

‘database‘ => env(‘DB_DATABASE‘, ‘MPPAYUAT‘),

‘username‘ => env(‘DB_USERNAME‘, ‘payment‘),

‘password‘ => env(‘DB_PASSWORD‘, ‘payment‘),

‘charset‘ => env(‘DB_CHARSET‘, ‘AL32UTF8‘),

‘prefix‘ => env(‘DB_PREFIX‘, ‘‘),

‘prefix_schema‘ => env(‘DB_SCHEMA_PREFIX‘, ‘‘),

],

记得将数据改成你自己的。

具体链接数组信息请参照github

https://github.com/yajra/laravel-oci8

2:修改ConnectionFactory.php中的createConnector函数和createConnection函数

(1):文件在vendor/laravel/framework/src/illuminate/Database/Connectors/ConnectionFactory.php

(2):添加如下的命名空间引用:

use Yajra\Oci8\Connectors\OracleConnector;

use Yajra\Oci8\Oci8Connection;

(3):createConnector函数:

添加如下代码:

case ‘oracle‘:

return new OracleConnector;

如下图所示:

(4):createConnector函数:

添加如下代码:

case ‘oracle‘:

return new Oci8Connection($connection, $database, $prefix, $config);

如下图所示:

3:修改config/app.php

在providers里面增加

Yajra\Oci8\Oci8ServiceProvider::class,

4:修改 processInsertGetId 函数

(在vendor/yajra/laravel-oci8/src/Oci8/Query/processors/OracleProcessor.php)

$statement->bindParam($parameter, $id, PDO::PARAM_STR, 20);//PDO::PARAM_STR 主键的 数据类型

至此已完成了laravel链接oracle的所有配置支持

三:测试

$openList = DB::connection(‘oracle‘)->select("SELECT * FROM xxxxxx");

Var_dump($openList);

有结果,不报错,即成功。

原文链接:https://guanchao.site/index/article/articledetail.html?artid=qoFhpAs1J

有好的建议,,请在下方输入你的评论。

欢迎访问个人博客

https://guanchao.site

欢迎访问小程序:

laravel5.8(十四)连接oracle数据库

标签:param   config   l数据库   new   env   art   报错   cto   删除

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:https://www.cnblogs.com/camellias/p/14112022.html

laravel框架连接Oracle,laravel5.8(十四)连接oracle数据库相关推荐

  1. Oracle入门(十四)之PL/SQL

    一.PL/SQL 基本语法 PL/SQL语言是模块式的过程化SQL,是oracle公司对SQL的扩展. (1) (2) (3) (5) (6) (7)数据类型 Number 数字型 Varchar2 ...

  2. Oracle入门(十四.2)之PL / SQL的好处

    一.PL / SQL的好处 在Oracle数据库中使用PL / SQL编程语言有很多好处. 1.将过程构造与SQL集成 2.模块化程序开发 3.改进的性能 4.与Oracle工具集成 5.便携性 6. ...

  3. Oracle学习(十六)Oracle安装

    为了本地创建数据库自己玩耍,还是下个Oracle的客户端吧... 一.下载地址 注意,要用Oracle的帐号进行登录后才能下载 http://download.oracle.com/otn/nt/or ...

  4. Oracle 学习笔记(四) Oracle表空间和数据文件

    tablespace是oracle的逻辑结构,datafile是oracle的物理结构. tablespace由datafile组成. tablespace 分为: permanent tablesp ...

  5. Oracle入门(十四.10)之显式游标简介

    一.上下文区域和游标 Oracle服务器分配一个称为上下文区域的私有内存区域来存储由SQL语句处理的数据. 每个上下文区域(因此每个SQL语句)都有一个与其关联的游标.您可以将游标视为上下文区域的标签 ...

  6. Oracle入门(十四.3)之创建PL / SQL块

    一.PL / SQL块结构 一个PL / SQL块由三部分组成. PL / SQL块结构部分 二.PL / SQL编译器 用高级编程语言(C,Java,PL / SQL等)编写的每个程序都必须经过检查 ...

  7. Oracle入门(十四C)之转换函数

    一.数据转换类型 为数据库创建表时,SQL 程序员必须定义在表的各个字段中存储何种数据.在 SQL 中,有几种不同的数据类型.这些数据类型用于定义每个列中可以包含的值的范围. (1)在本文中将使用以下 ...

  8. 二十四、oracle pl/sql 变量

    一.变量介绍 在编写pl/sql程序时,可以定义变量和常量:在pl/sql程序中包括有: 1).标量类型(scalar) 2).复合类型(composite) --用于操作单条记录 3).参照类型(r ...

  9. Oracle笔记(十四) 用户管理

    SQL语句分为三类:DML.DDL.DCL,之前已经讲解完了DML和DDL,现在就差DCL操作的,DCL主要表示的是数据库的控制语句,控制的就是操作权限,而在DCL之中,主要有两个语法:GRANT.R ...

  10. Oracle入门(十四.22)之创建DDL和数据库事件触发器

    一.什么是DDL和数据库事件触发器? DDL语句触发DDL触发器:CREATE,ALTER或DROP. 数据库事件触发器由数据库中的非SQL事件触发,例如: •用户连接到数据库或与数据库断开连接. • ...

最新文章

  1. 2022-2028年中国铁路机车行业投资分析及前景预测报告
  2. 深度盘点Python11个主流框架:Pandas、Django、Matplotlib、Numpy、PyTorch......
  3. Android深度探索(卷1)HAL与驱动开发读后感---第四章
  4. LeetCode OJ -Happy Number
  5. Git的配置SSHKey
  6. 如何在Kubernetes里给PostgreSQL创建secret
  7. kettle变量(param命名参数)
  8. Java 捕获 mybatis异常_3 springboot集成mybatis和全局异常捕获
  9. linux 脚本 变量为空,Shell判断一个变量是否为空
  10. c语言中static使用方法
  11. C#中xml序列化域反序列化
  12. (转)常见LCD接口
  13. 用友NC63 医药行业 消耗汇总 出库单批次模糊查询
  14. Eplan教程——如何使用项目检查功能
  15. 我们算了笔账,月薪过万可能还不配结婚!
  16. 遗传算法(四)——交叉、变异与替换
  17. 周子明:大道无疆,“驰”之以恒,在数字化时代纵横驰骋
  18. 什么是代理IP?怎么在浏览器中配置代理IP?
  19. Service Mesh对比:Istio与Linkerd
  20. 电磁兼容工程(Electromagnetic compatibility engineering Herry Ott )读书笔记--章12 数字电路的辐射

热门文章

  1. 为什么会出现“无法连接服务器-与网络有关或与实例有关的错误”?
  2. 撤消git update-index --assume-unchanged file
  3. 如何设置固定宽度 td ?
  4. 如何在Ubuntu Linux上安装JDK
  5. win7旗舰版系统如何重装系统win10
  6. 麦克纳姆轮全向移动机器人纵向直线运动分析
  7. java部署容器_Linux容器——Docker(二)之 JavaWeb部署
  8. 洛谷——P2415 集合求和
  9. 洛谷——(100分)P1590 失踪的7
  10. 洛谷——P1319 压缩技术