起因

由于项目的数据库需要用客户购买的Oracle数据库,所以需要php安装oci扩展。

运行环境

php : 7.2

系统: windows10

oracle: 11gR2

安装相关环境

由于php的oci8扩展还是需要使用到oracle的一些包,所以先下载这一些。

下载完成后解压缩这个压缩包,并且将这个包的路径添加到PATH中。

下载php的oci8扩展

windows可以直接到这个网址上下载相应的dll,pecl oci8

如果是安装了pecl的话,可以直接运行 pecl install oci8

下载完成后放到php的ext目录下,并且编辑php.ini文件,添加extension=php_oci8.dll

这样就完成了php与oracle的配置了。

在Laravel中使用

Laravel默认支持的数据库不包含oracle,可以使用 yajra/laravel-oci8这一个包来让Laravel支持oracle

composer require yajra/laravel-oci8

由于这个包已经支持Laravel的自动加载,也就不需要自己手动去注册了

"extra": {

"branch-alias": {

"dev-master": "5.6-dev"

},

"laravel": {

"providers": [

"Yajra\\Oci8\\Oci8ServiceProvider"

]

}

},

这样就可以使用php连接到oracle了。

一个坑

我们在使用migration来管理表格的时候,一般情况下会对每一个表都要有注释(为了别人能看得懂。。。)。然而这个包有一个bug,就是对于表格的注释缺少了前缀。

表格的注释是成员变量而不是方法噢。

/**

* Run the comment on table statement.

* Comment set by $table->comment = 'comment';.

*

* @param \Yajra\Oci8\Schema\OracleBlueprint $blueprint

*/

private function commentTable(OracleBlueprint $blueprint)

{

$table = $this->wrapValue($blueprint->getTable());

if ($blueprint->comment != null) {

$this->connection->statement("comment on table {$table} is '{$blueprint->comment}'");

}

}

这一段代码在/vendor/yajar/laravel-oci8/src/Oci8/Schema/Comment.php 中第40行。

这里少了对表前缀的引用,导致我们在migrate的时候生成的sql是缺少了表前缀的,所以在这里添加一个表前缀上去解决这个问题

/**

* Run the comment on table statement.

* Comment set by $table->comment = 'comment';.

*

* @param \Yajra\Oci8\Schema\OracleBlueprint $blueprint

*/

private function commentTable(OracleBlueprint $blueprint)

{

$table = $this->wrapValue($blueprint->getTable());

if ($blueprint->comment != null) {

$this->connection->statement("comment on table {$this->connection->getTablePrefix()}{$table} is '{$blueprint->comment}'");

}

}

本作品采用《CC 协议》,转载必须注明作者和本文链接

Oracle数据库php短连接,PHP 连接 Oracle相关推荐

  1. 连接oracle数据库异常System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本

    1.连接oracle数据库异常System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本 本人在用公司用C#写的服务连接数据库oracle 时,报出上面的 ...

  2. Oracle数据库基础入门《二》Oracle内存结构

    Oracle数据库基础入门<二>Oracle内存结构 Oracle 的内存由系统全局区(System Global Area,简称 SGA)和程序全局区(Program Global Ar ...

  3. Oracle数据库基础入门《一》Oracle服务器的构成

    Oracle数据库基础入门<一>Oracle服务器的构成 Oracle 服务器是一个具有高性能和高可靠性面向对象关系型数据库管理系统,也是一 个高效的 SQL 语句执行环境. Oracle ...

  4. oracle数据库索引介绍,SQL Server和Oracle数据库索引介绍

    SQL Server和Oracle数据库索引介绍 SQL Server 和 Oracle 数据库索引介绍1 SQL Server 中的索引 索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行 ...

  5. python连接oracle数据库的方法_Python3.6连接Oracle数据库的方法详解

    本文实例讲述了Python3.6连接Oracle数据库的方法.分享给大家供大家参考,具体如下: 下载cx_Oracle模块模块: https://pypi.python.org/pypi/cx_Ora ...

  6. win7配置远程连接oracle数据库吗,win7环境下配置oracle数据库的方法有哪些?

    1win7数据库. 在服务中停止所有的oracle相关服务: 2win7数据库. 删除注册表中以下三个位置的oracle相关文件夹: 3win7数据库. 在环境变量中path中win7数据库,删除or ...

  7. PL/SQL 工具远程连接Oracle数据库方法,plsql免安装oracle客户端直接配置oci实战演示

    PL/SQL 工具远程连接 Oracle 数据库 第一章:PL/SQL 工具配置 ① oci 下载 ② oci 配置 ③ PL/SQL 工具配置 ④ PL/SQL 远程连接 Oracle 数据库演示 ...

  8. python读取oracle数据库中文乱码_PL/SQL连接Oracle数据库,中文乱码,显示问号

    PL/SQL连接oracle数据库 1.简单介绍 在不安装oracle数据库的情况下使用pl/sql连接远程oracle数据库. 2.详细步骤: a)      安装PL/SQL.依据自己的操作系统安 ...

  9. Oracle数据库一直卡在正在连接中问题解决(Windows)

    问题描述: oracle数据库之前可以用的,中间隔了几周没用,某一天想看一下,navicat一直连接不上,停留在正在连接中的状态. 问题解决: 重启oracle的监听器即可解决问题.即使监听器已经是开 ...

最新文章

  1. php 数组格式的字符串转为数组_php将字符串转换为数组实例讲解
  2. 使用正則表達式对URL进行解析
  3. php扩展的xdebug,安装php扩展:Xdebug
  4. 洛谷 - P1251 餐巾计划问题(最小费用最大流+思维建边)
  5. html5属性详解,HTML5中的download属性详解
  6. fopen php 乱码,如何解决php fgets读取文件乱码的问题
  7. 使用 NetDataContractSerializer 共享类型
  8. VC++获取文本框1内容在文本框2显示
  9. epoll、mysql概念及简单操作
  10. matlab 遗传算法 等式约束,关于MATLAB遗传算法工具箱不等式约束
  11. 虚度大一一年又如何,双非本科大三学弟连斩腾讯字节
  12. 批处理(bat)choice命令详解
  13. Android IOS WebRTC 音视频开发总结(二二)-- 多人视频架构模式
  14. MySQL常用DDL语法总结
  15. html中怎样变英文月份,英语月份的巧记方法
  16. mysql ignore用法_MySQL中的insert ignore into, replace into等的一些用法总结
  17. linux文件夹怎么恢复默认打开方式,怎么还原打开方式_在win7电脑上还原文件默认打开方式的步骤 - 驱动管家...
  18. vs2010+opencv2.4.9配置========重点说明
  19. 函数式编程另类指南 (zz)
  20. OpenCV 2.图像入门:读取、显示、保存

热门文章

  1. [html] h5页面如何传递参数给小程序?
  2. [css] 说说你对jpg、png、gif的理解,分别在什么场景下使用?有使用过webp吗?
  3. [css] 使用纯css能否监控到用户的一些信息?怎么实现?
  4. [css] 写出在不固定宽高的元素在固定高度的情况下水平垂直居中的方法
  5. 前端学习(2649):vue3.0的处理展示
  6. “约见”面试官系列之常见面试题第八篇说说原型与原型链(建议收藏)
  7. 前端学习(772):内置对象
  8. JS之返回字符首次出现位置的indexOf
  9. mysql8.0.11 安装顺序_mysql 8.0.11 安装步骤详解
  10. python 图片 变清晰_python实现图片变亮或者变暗的方法