您的位置:首页 > 编程语言 > PHP开发

关于laravel数据库问题

2016-04-07 00:00 337 查看
摘要: 与师傅关于laravel数据库的一些问答

我现在使用:

1)$get_infos = DB::table('game_info')->where('type',$type)->skip($last)->take(3)->get();

2)$get_gjfz_infos =DB::select('select game_info.* from game_info where type = "1" limit 0,3);

这些语法去每次三行读取数据。

问题1.当剩余数据量不足三条时,怎样让他读取剩余数据而不是直接报错?我想到的一种办法是直接写sql语句,先计算一下全部数据条数,每次取的时候再计算一下剩余条数,但这样又复杂效率又不高。框架有没有方便的方法支持?

问题2.2)中想在sql语句中嵌个变量该怎么写,比如把type=‘1’换成type=$type?还是说只能通过1)式那种语法实现?

问题3.laravel文档中对于数据库操作的get()、first()等等方法都找不到详细的介绍,用的不明不白,有什么其他资料介绍到吗?

问题4.怎么让数据库查询不到或者错误时让它抛出异常,也就是说有没有类似于php中echo mysqli_error($mysqli);这样的方法,把错误返回到视图中好让我调试,现在数据库出错时,视图上就报个500的错,由于用post方法要想直接访问链接调试php还得把路由改回get,调试很困难。

其实好像这四个问题都可以归于问题(3)..

回答:

通常写原生SQL

DB::select(‘SELECT … type = ?’, array($type))

get返回对象数组,first返回对象。Laravel的文档就是这样的,我也不知道有什么好的资料。但是仔细看,需要知道的东西文档其实都有,只是它不愿意多写一个字。

你是在本地调试还是在服务器?你应该有权限访问log吧,在app/storage/logs/laravel.log。如果那个文件没有log,log就在Web服务器一层,即Apache或Nginx的log。500错误通常在Web服务器一层的log,这通常是PHP文件语法有错,PHP本身不能处理。而PHP能处理的错误会显示在屏幕(如果app/config.php:debug: true)或显示Ooops. Something wrong…之类
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: