thinkPHP5如何从MySQL迁移到Oracle
前言
php连接到oracle的配置,本文不进行过多阐述,如有不懂,请看文章:Oracle11g客户端安装教程。本文主要的工作是探讨在thinkPHP框架下MySQL迁移到Oracle后数据库操作方法的改写,不讨论迁移细节。
数据库迁移
本文使用Navicat快速将MySQL迁移到Oracle,具体操作本文不再细述,请自行搜索相关教程。
迁移后在执行新增和删除操作时,出现问题。定位到数据库方法,发现是表的问题。
案例说明
用于测试的sql语句(mysql版本),导入后请利用navicat传输到Oracle。
“`sql
– phpMyAdmin SQL Dump
– version 4.0.10.11– http://www.phpmyadmin.net
– 主机: 127.0.0.1:3306
– 生成日期: 2018-07-02 21:53:02
– 服务器版本: 5.5.54-log
– PHP 版本: 5.6.14SET SQL_MODE = “NO_AUTO_VALUE_ON_ZERO”;
SET time_zone = “+00:00”;/!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT /;
/!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS /;
/!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION /;
/!40101 SET NAMES utf8 /;–
– 数据库:
ray
–
– 表的结构 ray_user
–
CREATE TABLE IF NOT EXISTS ray_user
(
user_id
int(11) unsigned NOT NULL AUTO_INCREMENT,
user_name
varchar(10) NOT NULL,
user_pwd
varchar(40) NOT NULL,
PRIMARY KEY (user_id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ;
–
– 转存表中的数据 ray_user
–
INSERT INTO ray_user
(user_id
, user_name
, user_pwd
) VALUES
(1, ‘updatename’, ‘ray’),
(2, ‘testname’, ‘testpwd’),
/!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT /;
/!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS /;
/!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION /;
“`
mysql环境下的CURD操作(经简单测试后增删改查无问题)
数据库配置
database.php
<?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <liu21st@gmail.com> // +---------------------------------------------------------------------- return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'ray', // 用户名 'username' => 'root', // 密码 'password' => '', // 你的密码 // 端口 'hostport' => '3306', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'ray_', // 数据库调试模式 'debug' => true, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 是否严格检查字段是否存在 'fields_strict' => true, // 数据集返回类型