精华内容
下载资源
问答
  • TP5 连接oracle数据库

    2021-04-23 16:34:53
    一、Oracle官方网站下载安装Oracle客户端。1,下载地址:http://www.oracle.com/technetwork/cn/database/features/instant-client/index-097480.html2,下载PHP 扩展Oracle客户端 DLL链接文件。...将下载的文件接下dll...

    一、Oracle官方网站下载安装Oracle客户端。

    1,下载地址:

    http://www.oracle.com/technetwork/cn/database/features/instant-client/index-097480.html

    2,下载PHP 扩展Oracle客户端 DLL链接文件。

    http://pecl.php.net/package/oci8 选择DLL下载;

    将下载的文件接下dll 文件到 PHP的DLL扩展目录

    3,php.ini配置文件中开启Oracle连接扩展。

    ;extension = php_pdo_oci.dll

    ;extension=php_oci8.dll

    去除前面的分好并重启apache

    4,打开phpinfo,查看oci8扩展是否打开

    二、下载ThinkPHP Oracle数据库扩展驱动类并使用

    1,Oracle数据库扩展驱动类下载地址。

    https://github.com/top-think/think-oracle

    将下载好的文件解压,得到src目录下的两个文件,Builder.php和Connection.php

    (1)将Builder.php和Connection.php分别放到:\thinkphp\library\think\db对应的builder和connector目录并都改名为Oracle.php;

    (2)修改builder目录下的Oracle.php文件,如下:

    namespace think\oracle;

    use think\db\Builder as BaseBuilder;

    use think\db\Query;

    /**

    Oracle数据库驱动

    */

    class Builder extends BaseBuilder

    改为

    namespace think\db\builder;

    use think\db\Builder;

    use think\Exception;

    /**

    Oracle数据库驱动

    */

    class Oracle extends Builder

    (3)修改connector目录下的Oracle.php文件,如下:

    namespace think\oracle;

    use PDO;

    use think\db\Connection as BaseConnection;

    /**

    Oracle数据库驱动

    */

    class Connection extends BaseConnection

    改为

    namespace think\db\connector;

    use PDO;

    use think\db\Connection;

    use think\Log;

    /**

    Oracle数据库驱动

    */

    class Oracle extends Connection

    (4)开始使用,一般tp项目使用的默认数据库mysql,而可能某个模块需要用到oracle数据库,所以在该模块对应的控制器方法内配置oracle连接。如下:

    $conn = [

    // 数据库类型

    'type' => 'oracle',

    // 服务器地址

    'hostname' => 'tnsnames.ora配置文件所要连接视图对应的HOST',

    // 数据库名

    'database' => 'tnsnames.ora配置文件所要连接视图对应的SERVICE_NAME',

    // 用户名

    'username' => 'oracle数据库的登陆账号',

    // 密码

    'password' => 'oracle数据库的登陆密码',

    // 端口

    'hostport' => 'tnsnames.ora配置文件所要连接视图对应的PORT',

    // 连接dsn

    'dsn' => '',

    // 数据库连接参数

    'params' => [],

    // 数据库编码默认采用utf8

    'charset' => 'utf8',

    // 数据库表前缀

    'prefix' => '',

    // 数据库调试模式

    'debug' => true,

    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)

    'deploy' => 0,

    // 数据库读写是否分离 主从式有效

    'rw_separate' => false,

    // 读写分离后 主服务器数量

    'master_num' => 1,

    // 指定从服务器序号

    'slave_no' => '',

    // 是否严格检查字段是否存在

    'fields_strict' => true,

    // 数据集返回类型

    'resultset_type' => 'array',

    // 自动写入时间戳字段

    'auto_timestamp' => false,

    // 时间字段取出后的默认时间格式

    'datetime_format' => 'Y-m-d H:i:s',

    // 是否需要进行SQL性能分析

    'sql_explain' => false,

    ];

    $oraAllItem = Db::connect($conn, true)

    ->query("select fail_item,build_step from 视图表名 t where t.product=:project and t.station_type=:station and status=1 and fail_item is not null", ['project' => $project, 'station' => $resStation[$station]]);

    展开全文
  • 本文给大家介绍的是如何使用thinkphp连接Oracle数据库的方法和详细步奏,并附上实例,非常的实用,有需要的小伙伴可以参考下
  • 最近收集了一些关于THinkPHP连接Oracle数据库的问题,有很多朋友按照连接mysql的方法来操作,导致有一些方法在Oreale中无法正常使用
  • 这里不做多讲,这里主要讲解怎样连接Oracle数据库 1,Oracle官方网站下载安装Oracle客户端。 下载地址: http://www.oracle.com/technetwork/cn/database/features/instant-client/index-097480.html ...

    ThinkPHP5.0 配置Oracle 数据库连接

    一、PHP/Oracle驱动环境配置;

    这里不做多讲,这里主要讲解怎样连接到Oracle数据库

    1,Oracle官方网站下载安装Oracle客户端。
    下载地址:

    1. http://www.oracle.com/technetwork/cn/database/features/instant-client/index-097480.html

    复制代码

     

    2,下载PHP 扩展Oracle客户端 DLL链接文件。
    http://pecl.php.net/package/oci8 选择DLL下载;
    将下载的文件接下dll 文件到 PHP的DLL扩展目录
    2,php.ini 配置文件中开启 Oracle连接扩展。

    1. extension=php_pdo_oci.dll
    2. extension=php_oci8.dll   

    复制代码

     

    3,打开phpinfo信息,查看PHP扩展支持情况。(我用的tp5.0,所以这个php的版本为5.5.38)
    1526009205(1).jpg

    1526009157.png

    看到上图的情况即为PHP/Oracle配置成功;

    二、下载ThinkPHP Oracle数据库扩展驱动类;
    1,Oracle数据库扩展驱动类下载地址。
    https://github.com/top-think/think-oracle

    这里特别说明一下,5.0版本的请下载v1.*版本的think-oracle,5.1版本的请下载v2.*版本的think-oracle,不然会出现兼容性问题

    将下载好的文件解压,会得到src目录下的两个文件,Builder.php和Connection.php,(这里我以5.0版本为例,我下载的是v1.3版本的)

    (1)将Builder.php和Connection.php分别放到:\thinkphp\library\think\db对应的builder和connector目录并都改名为Oracle.php;

    (2)修改builder目录下的Oracle.php文件,如下:

    namespace think\oracle;
    
    use think\db\Builder as BaseBuilder;
    use think\db\Query;
    
    /**
     * Oracle数据库驱动
     */
    class Builder extends BaseBuilder
    

     改为

    namespace think\db\builder;
    
    use think\db\Builder;
    use think\Exception;
    
    /**
     * Oracle数据库驱动
     */
    class Oracle extends Builder

     (3)修改connector目录下的Oracle.php文件,如下:

    namespace think\oracle;
    
    use PDO;
    use think\db\Connection as BaseConnection;
    
    /**
     * Oracle数据库驱动
     */
    class Connection extends BaseConnection
    

     改为

    namespace think\db\connector;
    
    use PDO;
    use think\db\Connection;
    use think\Log;
    /**
     * Oracle数据库驱动
     */
    class Oracle extends Connection

     (4)配置Oracle连接参数,如下:

    return [
        // 数据库类型
        'type'            => 'oracle',
        // 服务器地址
        'hostname'        => '127.0.0.1',
        // 数据库名
        'database'        => 'orcl',
        // 用户名
        'username'        => 'test',
        // 密码
        'password'        => '你的Oracle数据库密码',
        // 端口
        'hostport'        => '1521',
        // 连接dsn
        'dsn'             => '',
        // 数据库连接参数
        'params'          => [],
        // 数据库编码默认采用utf8
        'charset'         => 'utf8',
        // 数据库表前缀
        'prefix'          => '',
        // 数据库调试模式
        'debug'           => true,
        // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
        'deploy'          => 0,
        // 数据库读写是否分离 主从式有效
        'rw_separate'     => false,
        // 读写分离后 主服务器数量
        'master_num'      => 1,
        // 指定从服务器序号
        'slave_no'        => '',
        // 是否严格检查字段是否存在
        'fields_strict'   => true,
        // 数据集返回类型
        'resultset_type'  => 'array',
        // 自动写入时间戳字段
        'auto_timestamp'  => false,
        // 时间字段取出后的默认时间格式
        'datetime_format' => 'Y-m-d H:i:s',
        // 是否需要进行SQL性能分析
        'sql_explain'     => false,
    ];
    

     后面就可以自己连接数据库输出数据了;

    例如我输出我的users表数据

    $oracle_data = Db::name('users')->select();  

    print_r($oracle_data);

    结果为:

    Array ( [0] => Array ( [id] => 1 [name] => 张三 [code] => user1 [NUMROW] => 1 ) [1] => Array ( [id] => 2 [name] => 李四 [code] => user2 [NUMROW] => 2 ) )

    到此thinkphp5连接Oracle数据就成功啦~

     

    转自:http://www.admincms.top/live_learn/2018-05-11/55.html

    展开全文
  • 根据目前thinkphp开发多数使用的是mysqsl数据库,很少有使用oracle数据库的,目前有需求需要使用oracle数据库。通过查阅别人的博客,踩了很多坑终于找到一个可以链接oralce数据库的方法。需要使用到think-oracle。...

    根据目前thinkphp开发多数使用的是mysqsl数据库,很少有使用oracle数据库的,目前有需求需要使用oracle数据库。

    通过查阅别人的博客,踩了很多坑终于找到一个可以链接oralce数据库的方法。

    需要使用到think-oracle。

    首先需要下载oracle客户端,然后配置oci,修改php.ini文件。

    1

    1,Oracle官方网站下载安装Oracle客户端。

    下载地址:

    http://www.oracle.com/technetwork/cn/database/features/instant-client/index-097480.html

    1

    选择一个合适的版本,下载,**然后将解压后的目录添加到系统变量(重要)**

    2,下载PHP 扩展Oracle客户端 DLL链接文件。

    http://pecl.php.net/package/oci8 选择DLL下载;

    1

    将下载的文件接下dll 文件到 PHP的DLL扩展目录

    3,php.ini 配置文件中开启 Oracle连接扩展。

    extension=php_pdo_oci.dll

    extension=php_oci8.dll

    1

    2

    打开phpinfo查看是否有oci8的相关信息,如果有则说明 开启拓展成功了,没有的话,需要自己费点时间看一下原因

    二、下载ThinkPHP Oracle数据库扩展驱动类;

    1,Oracle数据库扩展驱动类下载地址。

    https://github.com/top-think/think-oracle

    1

    这里特别说明一下,5.0版本的请下载v1.*版本的think-oracle,5.1版本的请下载v2.*版本的think-oracle,不然会出现兼容性问题

    将下载好的文件解压,会得到src目录下的两个文件,Builder.php和Connection.php,(这里我以5.0版本为例,我下载的是v1.3版本的)

    (1)将Builder.php和Connection.php分别放到:\thinkphp\library\think\db对应的builder和connector目录并都改名为Oracle.php;

    (2)修改builder目录下的Oracle.php文件,如下:

    namespace think\oracle;

    use think\db\Builder as BaseBuilder;

    use think\db\Query;

    /**

    * Oracle数据库驱动

    */

    class Builder extends BaseBuilder

    1

    2

    3

    4

    5

    6

    7

    8

    9

    改为

    namespace think\db\builder;

    use think\db\Builder;

    use think\Exception;

    /**

    * Oracle数据库驱动

    */

    class Oracle extends Builder

    1

    2

    3

    4

    5

    6

    7

    8

    9

    (3)修改connector目录下的Oracle.php文件,如下:

    namespace think\oracle;

    use PDO;

    use think\db\Connection as BaseConnection;

    /**

    * Oracle数据库驱动

    */

    class Connection extends BaseConnection

    1

    2

    3

    4

    5

    6

    7

    8

    9

    改为

    namespace think\db\connector;

    use PDO;

    use think\db\Connection;

    use think\Log;

    /**

    * Oracle数据库驱动

    */

    class Oracle extends Connection

    1

    2

    3

    4

    5

    6

    7

    8

    9

    (4)配置Oracle连接参数,如下:

    return [

    // 数据库类型

    'type'            => 'oracle',

    // 服务器地址

    'hostname'        => '127.0.0.1',

    // 数据库名

    'database'        => 'orcl',

    // 用户名

    'username'        => 'test',

    // 密码

    'password'        => '你的Oracle数据库密码',

    // 端口

    'hostport'        => '1521',

    // 连接dsn

    'dsn'             => '',

    // 数据库连接参数

    'params'          => [],

    // 数据库编码默认采用utf8

    'charset'         => 'utf8',

    // 数据库表前缀

    'prefix'          => '',

    // 数据库调试模式

    'debug'           => true,

    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)

    'deploy'          => 0,

    // 数据库读写是否分离 主从式有效

    'rw_separate'     => false,

    // 读写分离后 主服务器数量

    'master_num'      => 1,

    // 指定从服务器序号

    'slave_no'        => '',

    // 是否严格检查字段是否存在

    'fields_strict'   => true,

    // 数据集返回类型

    'resultset_type'  => 'array',

    // 自动写入时间戳字段

    'auto_timestamp'  => false,

    // 时间字段取出后的默认时间格式

    'datetime_format' => 'Y-m-d H:i:s',

    // 是否需要进行SQL性能分析

    'sql_explain'     => false,

    ];

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    后面就可以自己连接数据库输出数据了;

    ---------------------

    作者:xlelou

    来源:CSDN

    原文:https://blog.csdn.net/xlelou/article/details/84074952

    版权声明:本文为博主原创文章,转载请附上博文链接!

    标签:

    数据库

    分享:

    评论:

    你还没有登录,请先登录

    展开全文
  • 使用thinkphp6连接oracle数据库时 使用save方法永远跳转到update 使用insert方法执行语句成功,但是总是报ORA-00936错误 错误截图: SQLSTATE[HY000]: General error: 936 OCIStmtExecute: ORA-00936: 缺失表达式 ...

    错误现象:

    使用thinkphp6连接oracle数据库时
    使用save方法永远跳转到update
    使用insert方法执行语句成功,但是总是报ORA-00936错误

    错误截图:

    在这里插入图片描述

    SQLSTATE[HY000]: General error: 936 OCIStmtExecute: ORA-00936: 缺失表达式
    (ext\pdo_oci\oci_statement.c:157)
        /**
         * 获取最近插入的ID
         * @access public
         * @param BaseQuery $query    查询对象
         * @param string    $sequence 自增序列名
         * @return mixed
         */
        public function getLastInsID(BaseQuery $query, string $sequence = null): string
        {
            $pdo      = $this->linkID->query("select {$sequence}.currval as id from dual");
            $insertId = $pdo->fetchColumn();
    
            return $this->autoInsIDType($query, $insertId);
        }
    
        /**
         * SQL性能分析
         * @access protected
         * @param string $sql
    
    

    原因分析:

    tp6主要是基于mysql
    进行设计,mysql强制要求每个表都有主键,然而,oracle对此没有硬性要求。
    所以tp6在insert或者update访问数据表时候都会先取得主键,然后再进行访问。
    由于oracle大部分表格都没有主键,所以抛出错误。

    解决方法:

    临时方法:禁止tp6在insert和update时获得主键。
    具体操作:
    \vendor\topthink\think-orm\src\db\PDOConnection.php
    870行~871行,注释掉判断函数,然后让$lastInsId强制为0

    controller当中使用函数:
    (xxxxx是表名)

    Db::table('xxxxx')->update($data);
    
    Db::table('xxxxx')->insert($data);
    
    xxxxx::update($data);
    
    xxxxx::insert($data);
    
    

    在这里插入图片描述

    注意,这个方法不能解决save总是跳转到update的方法,所以老老实实用update和insert吧。

    展开全文
  • navicat连接Oracle数据库

    2021-05-08 19:46:13
    记录一下navicat连接Oracle数据库过程:一、根据自己版本去Oracle官网下载instantclient地址:https://www.oracle.com/technetwork/topics/winx64soft-089540.html二、 navicat设置OCI环境进入navicat --> 工具 -...
  • ThinkPhp利用swoole创建数据库连接池,优化数据读取,减少请求消耗!
  •  Oracle版本:Oracle 12c (64位),具体安装版本及过程请参考我的另一篇博客:安装oracle 12c  WampServer 2.5(64位)(PHP集成环境):可以通过腾讯软件管家一键傻瓜式下载。我在这里强烈推荐使用该PHP集成...
  • thinkPHP5如何连接Oracle数据库

    千次阅读 2018-07-03 23:34:32
    thinkPHP5如何从MySQL迁移到Oracle 前言 php连接oracle的配置,本文不进行过多阐述,如有不懂,请看文章:Oracle11g客户端安装教程。本文主要的工作是探讨在thinkPHP框架下MySQL迁移到Oracle数据库操作方法...
  • 完美解决php连接oracle数据库问题。有php连接oralce所需要的动态库,还有php连接oracle的测试的例子。经过测试,肯定能用!
  • 1.配置database.php 'oracle' => [ // 服务名 'instance_name' => 'xe', // 数据库类型 'type' => 'oracle', // 服务器地址 'hostname' => '192.168.3.134', // 数据库
  • 基于tp5的swoole支持,对th5的connection进行改造,使用Swoole\Coroutine\MySQL重写了基于swoole的PDO接口,实现了mysql的数据库连接池,本地测试可用。使用时,替换thinkphp/library/think/db/Connection.php,并...
  • ThinkPHP5.0 配置Oracle 数据库连接

    千次阅读 2018-12-26 22:13:47
    一、下载ThinkPHP Oracle数据库扩展驱动类; 1,Oracle数据库扩展驱动类下载地址。 https://github.com/top-think/think-oracle 这里特别说明一下,5.0版本的请下载v1.*版本的think-oracle,5.1版本的请下载v2.*版本...
  • tp5连接数据库

    2019-08-24 18:26:41
    ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行...如果应用需要使用数据库,必须配置数据库连接信息,数据库的配置文件有多种定义方式。 一、配置文件定义 常用的配置...
  • 新安装的数据库发现sqlplus本地登录以及客户端连接都异常卡顿 在分析了客户端tnsname 及 lisence等原因后, 最终定位原因是 nameserver 配置错误 使用sqlplus连接时,需要根据/etc/resolv.conf去解析,当解析失败...
  • 一、场景两台不同的服务器A、B分别装有不同业务的oracle数据库,因业务需要,现需要将B中test表的数据,定时同步到A中。二、实现根据以上场景,我想到了oracle中的dblink,当用户需要跨本地数据库,访问另外一个...
  • SAP程序(如R3trans,tp,wp等)连接Oracle数据库按过程通常分如下三步: 1.以OPS$方式登录Oracle数据库; OPS$方式即操作系统验证方式。 在Oracle上设置os_authent_prefix和remote_os_authent两个参数,其值分别为OPS$和...
  • thinkphp3 可以同时使用两个数据库 数据库调用
  • 快一年多没碰PHP了,有可能...但一想到THINKPHP要怎么连Oracle数据库,就有点蒙蔽,以前mysql一连,用个Phpstudy就能跑起来的。现在还是先想想看怎么连数据库吧 1.在php配置文件中使用php_oci8_12c.dll这个扩展 ...
  • 然后熟悉下数据库的配置,并掌握如何进行基础的查询操作,并简单介绍了分布式、存储过程及事务,学习内容主要包括:数据库架构设计数据库配置如何开始查询使用参数绑定查询返回值动态连接数据库分布式支持存储过程...
  • SAP程序(如R3trans,tp,wp等)连接Oracle数据库按过程通常分如下三步:1.以OPS$方式登录Oracle数据库;OPS$方式即操作系统验证方式。在Oracle上设置os_authent_prefix和remote_os_authent两个参数,其值分别为OPS$和true...
  • 一、 操作环境搭建 系统:Windows7 旗舰版 64位 ...ThinkPHP:3.0正式版 Oracle:Orcale_11gR2 32位版 数据库操作工具:PLSQL Developer 32位 开发工具:NetBeans IDE 7.1.2 说明:这里我反复强调软件的“位”,是...
  • 学习一门新技术显得犹为重要,之前网上说plsql这个比navicat好用,于是我也去网上下载来学习学习,plsql如何安装,网上有很多例子,为了节省时间,我就不多说了,下面就说一下我用plsql连接远程数据库的过程: ...
  • 项目JDBC连接ORACLE数据库的时候报如下异常:ORA-12519, TNS:no appropriate service handler foundThe Connection descriptor used by the client was:初步推算是JDBC的连接数不够的原因.因此将连接数增加就可以了....
  • 但是用thinkphp连接oracle,报错:系统不支持oracle。如果你看不到这个错误,可以在你的入口文件加一行:define('APP_DEBUG', true);以开启thinkphp的调试功能。这时,我们可以写一个简单的php程序oracle.php,不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,421
精华内容 1,368
关键字:

tp5连接oracle数据库