【问题标题】:How do I store the result of sql without column name in php variable?如何将没有列名的sql结果存储在php变量中?
【发布时间】:2016-06-01 11:13:28
【问题描述】:

我正在尝试将 sql 的结果存储在一个变量中。以下是sql(雄辩):

$key = $request->input('product_key'); // from previous page
$category_id = ProductModel::select(‘category_id’)->where(‘product_id’, $key)->get();

echo $category_id;

但是当我回显它时,输出看起来像 [{“category_id”:301}]

我只想将 301 保存在变量中,以便我可以进一步使用它??

基本上,我想获取所有 category_id 与给定产品相同的产品。请注意,我只有 prodcut_id。

【问题讨论】:

标签: php mysql eloquent


【解决方案1】:

也许您指的是value 方法。在此处了解更多信息

https://laravel.com/docs/5.2/queries#retrieving-results

如果您甚至不需要整行,您可以使用 value 方法从记录中提取单个值。该方法会直接返回列的值:

文档中的示例用法

$email = DB::table('users')->where('name', 'John')->value('email');

【讨论】:

    【解决方案2】:

    尝试使用 Eloquent 的 pluck 方法:https://laravel.com/docs/5.2/collections#method-pluck

    $key = $request->input('product_key');
    $category_id = ProductModel::where('product_id', $key)->pluck('category_id')->all();
    echo $category_id;
    

    这将产生一个包含单个元素的数组,即您搜索的 category_id(或更多元素,以防 key 匹配多行,但只匹配您想要的值)。

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 1970-01-01
      • 2014-04-24
      • 2011-11-02
      • 2014-06-30
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 2021-01-26
      相关资源
      最近更新 更多