【ThinkPHP+Oracle】ThinkPHP5.1.x+Oracle主键是sys_guid()

ThinkPHP5.1.x框架处理ORACLE数据库(这里是基于5.1.35)

1、首先通过composer安装think-oracle V2.*版本的插件。(thinkphp5.1 需要2.0版本以上)
2、使用的场景是所有表的主键是32位不相同是字符串,oracle中默认使用sys_guid()生成。
3、无需自增,则无需序列,也无需触发器。
4、修改框架:
a.首先在最外面common.php加入全局方法sys_guid()

/**
 * ORACLE sys_guid()
 * @return string
 */
function sys_guid(){
    return sprintf('%04X%04X%04X%04X%04X%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));
}

b.其次找到thinkphp\library\think\Model.php文件,第653行(修改insertData方法)
在这里插入图片描述
c.找到thinkphp\library\think\db\Connection.php 修改如下:
在这里插入图片描述
在这里插入图片描述
d.即可使用model中的save进行自如的oracle数据插入与更新。

$model = new Admin();
$data = [
...
];
$flag = $model->save( $data );//完成数据插入,返回true
echo $model->id;//获得最新一条数据的主键
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值