当前位置: 首页 > news >正文

thinkphp 操作远程oracle遇到的相关坑

坑一:没有内置oracle

        解决方法:

                1,下载think-oracle 扩展,资源很多,百度即可下载,分别放置于db下的connector 和 builder 文件夹下

                2,安装oracle本地客户端,一搜一大把,核心注意不要下错版本

坑二:字符集错误导致有中文字符串的语句查询不到

        原因分析:因为远程oracle数据库采用的字符集是ZHS16GBK,我本地的程序是utf8,导致字符串与远程不匹配导致oracle无法查询

        解决方法:涉及到中文字符串的,先做转义,然后再代入查询,如下

public function sup_waite_todu(){$text1 = iconv('utf-8', 'gbk','您有新的订单,请及时处理!【');$text2 = iconv('utf-8', 'gbk','】【采购员:');$text3 = iconv('utf-8', 'gbk','】【数量:');$text4 = iconv('utf-8', 'gbk','】');$effect = $this->db->query("select to_char(post_date,'yyyy-mm-dd hh24:mi:ss')||'".$text1."'||order_id||'".$text2."'||post_person||'".$text3."'|| (select sum(buy_num) from exp_order b where a.order_id = b.order_id and a.hospital_code = b.hospital_code)||'".$text4."' as info from exp_order_master a  where a.sup_id = '1076' and a.hospital_code ='1001' and a.order_status='1' order by post_date desc");return $effect;
}
坑三:一个项目牵扯多个数据库,程序一部分数据来自于远程oracle返回,需要配置多个

        解决方法:

                1,三方业务新建一个模型放于common下的model层,初始化直接连接远程,

                2,application下的config.php 增加数据库配置

                3,注意oracle的端口,需要根据实际情况变更

<?php
namespace app\common\model;use think\Db;
use think\Model;
use think\Config;/*** 供应商模型*/
header('Content-type: text/html; charset=ZHS16GBK');
class Sup extends Model
{protected function initialize(){$this->db = Db::connect(config('db_config1'));}//获取供应商信息public function sup_base_info($sup_id=''){$effect = $this->db->query("select b.hospital_code,c.f_fullname, a.expire_date,b.sup_name,b.sup_addres,b.sup_phone,b.sup_worker, a.f_createdate from xmadmin.xm_base_user a, exp_sup_dict b, xmadmin.xm_base_company c where a.f_encode = b.sup_id and  b.hospital_code = c.f_companyid and a.f_encode='".$sup_id."'");return $effect;}
}
'db_config1' => [// 数据库类型'type'        => 'oracle',// 数据库连接DSN配置'dsn'         => '',// 服务器地址'hostname'    => '',// 数据库名'database'    => '',// 数据库用户名'username'    => '',// 数据库密码'password'    => '',// 数据库连接端口'hostport'    => '',// 数据库连接参数'params'      => [],// 数据库编码默认采用utf8'charset'     => 'ZHS16GBK',// 数据库表前缀'prefix'      => '',
]

相关文章:

thinkphp 操作远程oracle遇到的相关坑

坑一&#xff1a;没有内置oracle 解决方法&#xff1a; 1&#xff0c;下载think-oracle 扩展&#xff0c;资源很多&#xff0c;百度即可下载&#xff0c;分别放置于db下的connector 和 builder 文件夹下 2&#xff0c;安装oracle本地客户端&#xff0c;一搜一大把&#xff0c;核…...

流媒体之推流和拉流

推流&#xff1a;将直播内容推送至服务器的过程 拉流&#xff1a;为服务器已有直播内容&#xff0c;用指定地址进行拉取的过程 什么是推流&#xff1f; 推流&#xff0c;指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。“推流”…...

浏览器中怎样查看前后端传值

路径&#xff1a;F12–>Network -->Fetch/XHR,选择一个接口地址。 在payload里面是前端发送给后端的参数。也即客户端发送给服务端的请求数据&#xff0c;即接口地址入参。 Preview和Response里都是后端返回给前端的。Preview是格式化过的&#xff0c;比较容易看。Resp…...

计算机竞赛 基于深度学习的人脸表情识别

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的人脸表情识别 该项目较…...

虹科分享 | MKA:基于先进车载网络安全解决方案的密钥协议

MKA作为MACsec的密钥协议&#xff0c;具有安全、高效、针对性强的特点&#xff0c;为您的汽车ECU通讯创建了一个安全的通信平台&#xff0c;可以助力您的各种汽车创新项目&#xff01; 虹科方案 | 什么是基于MACsec的汽车MKA 一、MACsec在汽车行业的应用 在以往的文章中&#…...

jmeter 常数吞吐量定时器

模拟固定吞吐量的定时器。它可以控制测试计划中各个请求之间的时间间隔&#xff0c;以达到预期的吞吐量。 参数包括&#xff1a; Target Throughput&#xff1a;目标吞吐量&#xff08;每分钟请求数&#xff09;Calculate Throughput based on&#xff1a;吞吐量计算基准&…...

【大数据Hive】hive 加载数据常用方案使用详解

目录 一、前言 二、load 命令使用 2.1 load 概述 2.1.1 load 语法规则 2.1.2 load语法规则重要参数说明 2.2 load 数据加载操作演示 2.2.1 前置准备 2.2.2 加载本地数据 2.2.3 HDFS加载数据 2.2.4 从HDFS加载数据到分区表中并指定分区 2.3 hive3.0 load 命令新特性 …...

计及电池储能寿命损耗的微电网经济调度(matlab代码)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考文献《考虑寿命损耗的微网电池储能容量优化配置》模型&#xff0c;以购售电成本、燃料成本和储能寿命损耗成本三者之和为目标函数&#xff0c;创新考虑储能寿命损耗约束、放电深度约束和储能循环次…...

DP读书:鲲鹏处理器 架构与编程(十四)ACPI与软件架构具体调优

一分钟速通ACPI和鲲鹏软件移植 操作系统内核鲲鹏软件移植鲲鹏软件移植流程 编译工具选择编译参数移植案例源码修改案例鲲鹏分析扫描工具 Dependency Advisor鲲鹏代码迁移工具 Porting Advisor 鲲鹏软件性能调优鲲鹏软件性能调优流程CPU与内存子系统性能调优网络子系统性能调优磁…...

4.正则提取html中的img标签的src内容

我们以百度贴吧的1吧举例 目录 1 把网页搞下来 2 收集url 3 处理url 4 空的src 5 容错 6 不使用数字作为文件名 7 并不是所有的图片都用img标签表示 8 img标签中src请求下来不一定正确 9 分页 1 把网页搞下来 搞下来之后&#xff0c;双击打开是这样的 2 收…...

安装对应版本pytorch和torchvision

遇见报错&#xff1a; ERROR: Could not find a version that satisfies the requirement torch (from versions: none) ERROR: No matching distribution found for torch 解决方法&#xff1a; 1、网站找到对应torch和torchvision版本&#xff0c;cp对应python版本&#xff…...

酷克数据与华为合作更进一步 携手推出云数仓联合解决方案

在一起&#xff0c;共迎新机遇&#xff01;8月25-26日&#xff0c;2023华为数据存储用户精英论坛在西宁召开。酷克数据作为国内云原生数据仓库的代表企业&#xff0c;也是华为重要的生态合作伙伴&#xff0c;受邀参与本次论坛&#xff0c;并展示了云数仓领域最新前沿技术以及联…...

若依 MyBatis改为MyBatis-Plus

主要内容&#xff1a;升级成mybatis-plus&#xff0c;代码生成也是mybatis-plus版本 跟着我一步一步来&#xff0c;就可完成升级&#xff01; 检查&#xff1a;启动程序&#xff0c;先保证若依能启动 第一步&#xff1a;添加依赖 这里需要在两个地方添加&#xff0c;一个是最…...

docker-ubuntu

docker ps docker images 拉取ubuntu镜像 docker pull ubuntu 启动 docker start podid docker run -itd -e TZAsia/Shanghai --name ubuntu-test -v /share:/shared -d ubuntu:latest 进入bash界面 docker exec -it podid /bin/bash 安装sudo apt-get install sudo …...

Mock 基本使用

mock解决的问题 开发时&#xff0c;后端还没完成数据输出&#xff0c;前端只好写静态模拟数据。数据太长了&#xff0c;将数据写在js文件里&#xff0c;完成后挨个改url。某些逻辑复杂的代码&#xff0c;加入或去除模拟数据时得小心翼翼。想要尽可能还原真实的数据&#xff0c…...

MySql学习笔记08——事务介绍

事务 基本概念 事务是一个完整的业务逻辑&#xff0c;是一个最小的工作单元&#xff0c;不可再分。 一个完整的业务逻辑包括一系列的操作&#xff0c;这些操作是整个业务逻辑中的最小单元&#xff0c;这些操作要么同时成功&#xff0c;要么同时失败。 由于只有DML语句中才会…...

AMEYA360:思瑞浦推出汽车级超低静态功耗高压LDO—TPL8031Q

聚焦高性能模拟芯片和嵌入式处理器创新研发的半导体公司——思瑞浦3PEAK(股票代码&#xff1a;688536)&#xff0c;推出全新一代汽车级超低静态功耗高压线性稳压器——TPL8031Q。 TPL8031Q拥有支持3V~42V宽输入电压范围、3μA超低静态功耗、多种封装可选等性能优势&#xff0c;…...

保留 N 条数据功能 实现方案

需求&#xff1a;用户浏览某信息后 就插入一条浏览记录&#xff0c;该浏览记录限制只保留 N 条。 实现方案&#xff1a; 1. 插入记录 2. 查询总记录 3. 判断&#xff1a;总记录 是否大于 阈值 3.1 如果大于&#xff1a;总记录 - 阈值 获取到超出数量&#xff0c;将对超出数…...

SOME/IP TTL 在各种Entry 中各是什么意思?有什么限制?

1 服务发现 SOME/IP SD 服务发现主要用于 定位服务实例检测服务实例状态是否在运行发布/订阅行为管理SOME/IP SD 也是 SOME/IP 消息,遵循 SOME/IP 消息格式,有固定的 Message ID、Request ID 以及 Message Type 等。并对 SOME/IP Payload 进行了详细的定义。 SOME/IP SD …...

CSS中如何实现元素的旋转和缩放效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 元素的旋转和缩放效果⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏…...

多模态AI应用开发实战:GPT与图像生成的集成架构与优化

1. 项目概述与核心价值最近在折腾AI图像生成和智能对话的整合应用时&#xff0c;发现了一个挺有意思的仓库&#xff1a;bubblesslayyer-cmd/Awesome-GPT-Image-2-OpenAi。这个项目名字乍一看有点长&#xff0c;但拆解一下就能明白它的核心——“Awesome”系列通常代表精选资源集…...

打造便携式Kali Linux安全评估工具:OpenClaw USB定制全攻略

1. 项目概述&#xff1a;一个便携式安全评估工具的诞生 在安全研究、渗透测试或者应急响应的现场&#xff0c;你经常会遇到一个经典困境&#xff1a;目标环境可能是一台物理隔离的机器&#xff0c;或者是一台你无法安装任何软件的“干净”主机。你需要一个功能强大、即插即用的…...

qmcdump终极指南:三步解锁QQ音乐加密音频文件

qmcdump终极指南&#xff1a;三步解锁QQ音乐加密音频文件 【免费下载链接】qmcdump 一个简单的QQ音乐解码&#xff08;qmcflac/qmc0/qmc3 转 flac/mp3&#xff09;&#xff0c;仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 还在为QQ音乐下…...

前端工程化实战:基于 Kelivo 模板的配置即代码与自动化工作流

1. 项目概述与核心价值最近在整理个人开发环境时&#xff0c;发现一个挺有意思的项目&#xff0c;叫Chevey339/kelivo。乍一看这个仓库名&#xff0c;可能有点摸不着头脑&#xff0c;但点进去之后&#xff0c;你会发现它是一个围绕特定开发工具或框架进行深度定制、优化和功能增…...

Navis:开源项目标准化开发环境与工具链配置框架实践

1. 项目概述&#xff1a;一个为开发者打造的“导航星图”如果你和我一样&#xff0c;常年混迹在开源项目的海洋里&#xff0c;那么你一定对这种感觉不陌生&#xff1a;面对一个全新的、功能强大的开源工具&#xff0c;兴奋地克隆了仓库&#xff0c;然后……就卡在了第一步。REA…...

【Canvas动画录制实战】从WebM到MP4:MediaRecorder全流程解析与避坑指南

1. Canvas动画录制基础与准备工作 如果你正在开发一个数据可视化项目或者HTML5小游戏&#xff0c;可能会遇到需要将动态内容保存为视频的需求。Canvas动画录制就是解决这个问题的关键技术方案。相比传统的录屏软件&#xff0c;直接通过代码录制能获得更清晰的画质&#xff0c;还…...

Arm Iris组件参数化建模与调试实践

1. Arm Iris组件概述与核心价值Arm Iris组件是Fast Models仿真平台中的关键模块&#xff0c;它为芯片设计验证和软件开发提供了高度参数化的虚拟原型环境。作为一名长期从事Arm架构开发的工程师&#xff0c;我发现Iris组件的设计理念完美体现了"配置即硬件"的思想——…...

Arm Fast Models中VGIC架构与中断虚拟化解析

1. Arm Fast Models中的VGIC架构解析虚拟通用中断控制器(Virtual Generic Interrupt Controller, VGIC)是Armv7/v8架构虚拟化扩展的核心组件之一。在Fast Models仿真环境中&#xff0c;Iris组件通过精确建模实现了VGIC的完整功能&#xff0c;包括&#xff1a;物理中断与虚拟中断…...

从零构建天气预报Web应用:Vue.js与Node.js全栈实战指南

1. 项目概述&#xff1a;一个开源的天气预报应用 最近在GitHub上看到一个挺有意思的项目&#xff0c;叫 fsboy/weather-forecast 。光看名字就知道&#xff0c;这是一个天气预报应用。但如果你以为它只是个简单的天气查询工具&#xff0c;那就太小看它了。这个项目吸引我的地…...

LoRA模型合并实战指南:多技能融合与vLLM部署

1. 项目概述&#xff1a;LoRA模型合并的“瑞士军刀”最近在折腾大语言模型微调的朋友&#xff0c;估计对LoRA&#xff08;Low-Rank Adaptation&#xff09;这个词都不陌生。它就像给预训练好的大模型“打补丁”&#xff0c;用极小的参数量&#xff08;通常只有原模型的0.1%到1%…...