<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 查詢數據 ## 基本查詢 查詢單個數據使用`find`方法: ``` // table方法必須指定完整的數據表名 Db::table('think_user')->where('id',1)->find(); ``` 最終生成的SQL語句可能是: ``` SELECT * FROM `think_user` WHERE `id` = 1 LIMIT 1 ``` > find 方法查詢結果不存在,返回 null,否則返回結果數組 如果希望在沒有找到數據后拋出異常可以使用 ``` // table方法必須指定完整的數據表名 Db::table('think_user')->where('id',1)->findOrFail(); ``` 如果沒有查找到數據,則會拋出一個`think\db\exception\DataNotFoundException`異常。 查詢多個數據(數據集)使用`select`方法: ``` Db::table('think_user')->where('status',1)->select(); ``` 最終生成的SQL語句可能是: ``` SELECT * FROM `think_user` WHERE `status` = 1 ``` > select 方法查詢結果是一個二維數組,如果結果不存在,返回空數組 如果希望在沒有查找到數據后拋出異常可以使用 ``` Db::table('think_user')->where('status',1)->selectOrFail(); ``` 如果沒有查找到數據,同樣也會拋出一個`think\db\exception\DataNotFoundException`異常。 如果設置了數據表前綴參數的話,可以使用 ``` Db::name('user')->where('id',1)->find(); Db::name('user')->where('status',1)->select(); ``` > 如果你的數據表沒有設置表前綴的話,那么`name`和`table`方法效果一致。 在`find`和`select`方法之前可以使用所有的鏈式操作(參考[鏈式操作](354005)章節)方法。 > 默認情況下,`find`和`select`方法返回的都是數組,區別在于后者是二維數組。 ### 助手函數 系統提供了一個`db`助手函數,可以更方便的查詢: ``` db('user')->where('id',1)->find(); db('user')->where('status',1)->select(); ``` `db`方法的第一個參數的作用和`name`方法一樣,如果需要使用不同的數據庫連接,可以使用: ``` db('user','db_config1')->where('id', 1)->find(); ``` ## 值和列查詢 查詢某個字段的值可以用 ``` // 返回某個字段的值 Db::table('think_user')->where('id',1)->value('name'); ``` > value 方法查詢結果不存在,返回 null 查詢某一列的值可以用 ``` // 返回數組 Db::table('think_user')->where('status',1)->column('name'); // 指定id字段的值作為索引 Db::table('think_user')->where('status',1)->column('name','id'); ``` 如果要返回完整數據,并且添加一個索引值的話,可以使用 ``` // 指定id字段的值作為索引 返回所有數據 Db::table('think_user')->where('status',1)->column('*','id'); ``` > column 方法查詢結果不存在,返回空數組 ## 數據分批處理 如果你需要處理成千上百條數據庫記錄,可以考慮使用`chunk`方法,該方法一次獲取結果集的一小塊,然后填充每一小塊數據到要處理的閉包,該方法在編寫處理大量數據庫記錄的時候非常有用。 比如,我們可以全部用戶表數據進行分批處理,每次處理 100 個用戶記錄: ``` Db::table('think_user')->chunk(100, function($users) { foreach ($users as $user) { // } }); // 或者交給回調方法myUserIterator處理 Db::table('think_user')->chunk(100, 'myUserIterator'); ``` 你可以通過從閉包函數中返回`false`來中止對后續數據集的處理: ``` Db::table('think_user')->chunk(100, function($users) { foreach ($users as $user) { // 處理結果集... if($user->status==0){ return false; } } }); ``` 也支持在`chunk`方法之前調用其它的查詢方法,例如: ``` Db::table('think_user') ->where('score','>',80) ->chunk(100, function($users) { foreach ($users as $user) { // } }); ``` `chunk`方法的處理默認是根據主鍵查詢,支持指定字段,例如: ``` Db::table('think_user')->chunk(100, function($users) { // 處理結果集... return false; },'create_time'); ``` 并且支持指定處理數據的順序。 ``` Db::table('think_user')->chunk(100, function($users) { // 處理結果集... return false; },'create_time', 'desc'); ``` > `chunk`方法一般用于命令行操作批處理數據庫的數據,不適合WEB訪問處理大量數據,很容易導致超時。 ## 大批量數據處理 如果你需要處理大量的數據,可以使用新版提供的游標查詢功能,該查詢方式利用了PHP的生成器特性,可以大幅減少大量數據查詢的內存占用問題。 ``` $cursor = Db::table('user')->where('status', 1)->cursor(); foreach($cursor as $user){ echo $user['name']; } ``` `cursor`方法返回的是一個生成器對象,`user`變量是數據表的一條數據(數組)。 ## JSON類型數據查詢(`mysql`) ``` // 查詢JSON類型字段 (info字段為json類型) Db::table('think_user') ->where('info->email','thinkphp@qq.com') ->find(); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看