搜索

首页  >  问答  >  正文

laravel5.2为什么查询结果不是二维数组呢?

$res=DB::select('select * from qq');
var_dump($res);

$res=DB::table('qq')->get();
var_dump($res);

用这两种方式查询后为什么图片中得到的是个一维数组呢?一维数组中为什么是对象呢?用原生查询得到的是二维数组 这个结果为什么不是二维数组呢?

曾经蜡笔没有小新曾经蜡笔没有小新2840 天前903

全部回复(2)我来回复

  • 阿神

    阿神2017-06-06 09:56:43

    以下为Laravel 5.4版本的,因为没有使用过5.2版本的Laravel。

    运行原生的SQL查询,获取的是一个以数组形式的结果集,详见文档。

    $res = DB::select('select * from qq');
    dd($res);
    
    /*
     * array:5 [▼
        0 => {#388 ▶}
        1 => {#399 ▶}
        2 => {#400 ▶}
        3 => {#401 ▶}
        4 => {#402 ▶}
        ]
     */

    使用查询构造器运行SQL语句,获取的是一个Collection对象,详见文档。

    $res = DB::table('qq')->get();
    dd($res);
    
    /*
     * Collection {#398 ▼
          #items: array:5 [▼
            0 => {#399 ▶}
            1 => {#400 ▶}
            2 => {#401 ▶}
            3 => {#402 ▶}
            4 => {#403 ▶}
          ]
      }
     */

    • 运行原生SQL语句获取的是一个一维数组且包裹着一个个对象,并非二维数组。

    • 使用查询构造器获取的是一个Collection对象,里面也是一个一维数组包裹着一个个对象。那为何要返回Collection对象呢,因为其内置了很多有用且优雅的方法。就像Eloquent默认返回Collection对象一样。

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-06 09:56:43

    雷雷

    回复
    0
  • 取消回复