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;//获得最新一条数据的主键