我如今使用:php
1)$get_infos = DB::table('game_info')->where('type',$type)->skip($last)->take(3)->get();mysql
2)$get_gjfz_infos =DB::select('select game_info.* from game_info where type = "1" limit 0,3);laravel
這些語法去每次三行讀取數據。sql
問題1.當剩餘數據量不足三條時,怎樣讓他讀取剩餘數據而不是直接報錯?我想到的一種辦法是直接寫sql語句,先計算一下所有數據條數,每次取的時候再計算一下剩餘條數,但這樣又複雜效率又不高。框架有沒有方便的方法支持?數據庫
問題2.2)中想在sql語句中嵌個變量該怎麼寫,好比把type=‘1’換成type=$type?仍是說只能經過1)式那種語法實現?數組
問題3.laravel文檔中對於數據庫操做的get()、first()等等方法都找不到詳細的介紹,用的不明不白,有什麼其餘資料介紹到嗎?服務器
問題4.怎麼讓數據庫查詢不到或者錯誤時讓它拋出異常,也就是說有沒有相似於php中echo mysqli_error($mysqli);這樣的方法,把錯誤返回到視圖中好讓我調試,如今數據庫出錯時,視圖上就報個500的錯,因爲用post方法要想直接訪問連接調試php還得把路由改回get,調試很困難。app
其實好像這四個問題均可以歸於問題(3)..框架
回答:oop
一般寫原生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…之類