平时开发中会遇到将MySQL转为SQLite数据库的情况,转换后多少都会出现一些报错问题,这是因为SQLite和MySQL的一些函数和语法不兼容,这些不兼容并不是很多,只需要简单修改一下就可以修复报错。
比如按随机数查询数据,在MySQL中可以这样写:
$list = User::where('status', 1)->limit(10)->orderRaw('rand()')->select();
但是在SQLite中必须改为:
$list = User::where('status', 1)->limit(10)->orderRaw('RANDOM()')->select();
两种数据库的随机数函数不同,MySQL是rand(),SQLite是RANDOM(),这是需要注意的。
还有删除数据:
User::where('id',$id)->limit(1)->delete();
删除数据加上limit(1)是我个人的习惯,可能别人不这么写,如果写了,在MySQL正常,但在SQLite中就会报错,去掉limit(1)就可以了:
User::where('id',$id)->delete();
除了这两处问题外,可能还会有别的问题,我目前还没有遇到,待补充。
本站原创内容,转载请注明来源:https://www.liutonghui.com/143
评论列表(0条)
暂无评论