Oracle数据库php短连接,PHP 连接 Oracle

起因

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

运行环境

php : 7.2

系统: windows10

oracle: 11gR2

安装相关环境

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

1d72a9cc2058d725efd6b2eec5321899.png

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

bbc9cd8fd23920aac4c529a584d296e2.png

下载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 协议》,转载必须注明作者和本文链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机考研文章精选[转载]

今天在网上看到了一篇超全的计算机考研文章集合,里面有很多曾经看过,挺经典的,于是忍不住收藏下来,希望对那些即将报考计算机研究生和工作了仍不放弃考研的朋友有所帮助 计算机考研常见问题解答 地址:http://ww…

PHP鼠标滑过变色命令,WordPress鼠标悬停变色的修改方法

原创内容,转载请注明出处:https://www.myzhenai.com.cn/post/3253.html关键词:wordpress 鼠标 悬停 变色我总是觉得我两个WordPress博客的主题里使用的鼠标悬停变色的颜色不太喜欢,就是当鼠标划过或停留在某一个链接上的时候&…

圆面积异常

package zengliang;import java.util.*;public class Suv {public static void main(String[] args) {// TODO 自动生成的方法存根try{double r,s;final double PI 3.14;Scanner scnew Scanner(System.in);System.out.println("输入圆的半径:");r sc.ne…

SpringBoot学习笔记(9)----SpringBoot中使用关系型数据库以及事务处理

在实际的运用开发中,跟数据库之间的交互是必不可少的,SpringBoot也提供了两种跟数据库交互的方式。 1. 使用JdbcTemplate 在SpringBoot中提供了JdbcTemplate模板类,JdbcTemplate提供的方法进行增删改查的操作。 首先需要在pom文件中添加依赖:…

Processes

转载于:https://www.cnblogs.com/EMH899/p/10844709.html

[html] 说说video标签中预加载视频用到的属性是什么?

[html] 说说video标签中预加载视频用到的属性是什么? 个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

CodeSmith 5.0工具实例篇系列4——根据表生成修改的存储过程,针对MS Sqlserver

运行该模板时,只需要选择单个表即可。 申明:该系列案例已通过CodeSmith Professional 5.0.1 Revision 4983版本的测试,以及生成的存储过程是针对MS Sqlserver。 操作说明 :运行CodeSmith Studio工具 ,创建Blank Templa…

差分放大电路单端输出和双端输出区别以及应用(转载)

来自:http://www.elecfans.com/news/dianzi/20171118581901_a.html 什么是差分放大电路 差分放大电路利用电路参数的对称性和负反馈作用,有效地稳定静态工作点,以放大差模信号抑制共模信号为显著特征,广泛应用于直接耦合电路和测量…

Flash 缓存问题的解决(转)

Flash 缓存问题的解决 作者:wangwaizi 时间: 2003-12-27 文档类型:翻译 来自:蓝色理想 原文是Flash支持中心的两篇文章.解决Flash缓存问题 | 解决载入变量缓存问题 使用以下的方法,使SWF文件强制不从浏览器读本地…

matlab可以使用词云分析吗,利用豆瓣短评数据生成词云

在之前的文章中,我们获得了豆瓣爬取的短评内容,汇总到了一个文件中,但是,没有被利用起来的数据是没有意义的。前文提到,有一篇微信推文的关于词云制作的一个实践记录,准备照此试验一下。思路分析读文件利用…

第一阶段冲刺08

1、整个项目的预期任务量(任务量所有工作的预期时间)和目前已经花的时间(所有记录的‘已经花费的时间’),还剩余的时间(所有工作的‘剩余时间’)。第一阶段工作预期任务:完成整个App…

matlab中腐蚀图像的编写,Matlab实现二值图像的腐蚀算法源代码

标签:1、二值图像的腐蚀原理:我们知道,二值图像就是0和1组成的矩阵,0为黑1为白,腐蚀作用在1上面也就是图像高光白色部分,然后白色部分往外收缩。腐蚀就是类似于黑色军队反攻白色军队,最终把自己…

第五次实训作业继承

1、实现如下类之间的继承关系,并编写Music类来测试这些类。 2、编写一个Java应用程序,该程序包括3个类:Monkey类、People类和主类E。要求: (1) Monkey类中有个构造方法:Monkey (String s),并且有个public v…

Chrome 过滤广告插件暂替办法

由于Chrome暂无广告过滤插件,我们只能通过其他方法是实现Google Chrome的广告过滤。 这里我们需要用到Privoxy这款软件!由于Privoxy是通过本地代理来实现广告过滤的,所以用chrome也通过Privoxy实现广告过滤。 Privoxy是款免费软件&#xff0c…

JavaScript调用WebServices

经过几天研究,终于可以再单个js文件(纯JavaScript,不涉及AJax控件)调用WebServices了。现将调用方法及注意事项分享给大家 1、WebServices文件源码WebService.asmx usingSystem;usingSystem.Collections;usingSystem.Linq;usingSystem.Web;usingSystem.W…

oracle11g和12c安装区别,Oracle下载与Oracle安装图解(Oracle19c,Oracle18c,Oracle12c,Oracle11g)...

oracle下载与oracle安装图解(oracle19c,oracle18c,oracle12c,oracle11g)1、oracle下载(oracle11g)oracle下载方法,请根据以下步骤与图示来下载oracle11g版本:oracle11g下载第1步:打开oracle官方网站oracle11g下载第2步:打开菜单-支…

nodejs+supertest+mocha 接口测试环境搭建

系统接口自动化测试 该框架用于对系统的接口自动化测试(nodejssupertestmocha)Homebrew 安装: ruby -e "$(curl -fsSL {}https://raw.githubusercontent.com/Homebrew/install/master/install)" 安装nodejs:brew instal…

初探postman

第一种:安装postman 扩展程序 第二种:本地 安装postman 登陆进来postman的界面 发送第一个postman请求 将请求保存到集合 未完,待续... 转载于:https://www.cnblogs.com/smart-girl/p/10865386.html

oracle dw报告,讲解Oracle数据库的全文索引设置步骤

在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化器(Optimizer)来完成的。不同的情况,一条SQL可能有多种执行计划,但在某一时点,一定只有一种执行计划是最优的,花费时间是最少的。相信你一定会用Pl/sql Developer、T…

C# 控制台 模拟时间一秒一秒走动,直到按Esc键,时间静止,退出!

Codeusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading; //延迟函数必备namespace ConsoleApplication2 { class Program { static void Main(string[] args) { DateTime dt n…