亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel 數據庫查詢讀取不使用 get

Laravel 數據庫查詢讀取不使用 get

PHP
aluckdog 2022-12-23 16:28:18
我花了 1 小時在谷歌上尋找這個,但我沒有運氣這是我第一次使用 Laravel。我必須嘗試使用數據庫的基本示例。首先是我使用普通 php 的舊代碼:echo "<table border=1>";$q="SELECT * from USERS"; $result = $mysqli->query($q);while(($o = $result->fetch_object())){       echo "<tr>";    echo "<td>$o->ID</td><td>$o->Name</td>";    echo "</tr>";}echo "</table>";現在我在 laravel 中嘗試同樣的方法$query=DB::Table("users")->select("*");我知道我可以使用$allrows=$query->get();這個將所有結果都放在一個數組中,但是如果您有 200 萬用戶,那將是一個大問題。這個返回第一行$Firstrow=$query->first();我只想一行一行地獲取行,比如$query=DB::Table("users")->select("*");while($o=$query->next())    {           echo "<tr>";        echo "<td>$o->ID</td><td>$o->Name</td>";        echo "</tr>";    }也許我是錯的,因為我是 Laravel 的新手,但這使用的內存更少,因為只有一個處于活動狀態。PD:我在 laravel 中看到過分頁,但我只想逐行使用舊方法……如果可能的話。提前致謝。
查看完整描述

3 回答

?
DIEA

TA貢獻1820條經驗 獲得超2個贊

對于這樣的事情,您可以使用以下cursor()方法:


$users = DB::table('users')->cursor();


foreach ($users as $user) {

    echo $user->id;

}

如果你傳遞$users給刀片文件,那么你可以有以下內容


<table>

    <tr>

        @foreach($users as $user)

            <td>{{ $user->ID }}</td>

            <td>{{ $user->Name }}</td>

        @endforeach

    </tr>

</table>


查看完整回答
反對 回復 2022-12-23
?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

您應該使用游標方法而不是 get() 函數。因為游標方法允許您使用游標遍歷數據庫記錄,游標只會執行一個查詢。


foreach (Flight::where('foo', 'bar')->cursor() as $flight) {

    //

}

參考鏈接:- https://laravel.com/docs/7.x/eloquent


查看完整回答
反對 回復 2022-12-23
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

你可以使用 eloquent 提供的 chunks 方法。在這里閱讀更多相關信息https://laraveldaily.com/process-big-db-table-with-chunk-method/


DB::table('users')->chunk(100, function($users)

{

    foreach ($users as $user)

    {

        //do something

    }

});


查看完整回答
反對 回復 2022-12-23
  • 3 回答
  • 0 關注
  • 147 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號