SQLSTATE [42S22]:找不到列:1054'字段列表'中的未知列'0'

问题描述 投票:1回答:2

我写了一个流明代码来更新我的表字段,这是我的代码 -

$field='';
if($request->input('category')){
   $val=$request->input('category');
   $field="'category' => '$val'";
}
if($request->input('subcategory')){
   $val=$request->input('subcategory');
   if($field==''){
      $field="'sub_category' => '$val'";
   } else{
      $field.=",'sub_category' => '$val'";
   }
}
// return $field;

$Expence=DB::table('expencedetails')
           ->where('id',$request->input('id'))
           ->update(['$field']);

$field的价值是'category' => 'fgfg''sub_category' => 'ggg'

当我运行代码时,它显示错误

SQLSTATE [42S22]:未找到列:1054'字段列表'中的未知列'0'(SQL:update expencedetails set 0 = $ field其中id = 1)

mysql laravel-5 lumen
2个回答
0
投票

您可能需要将逻辑重写为

$fields=array();
if($request->input('category')){
    $fields['category'] = $request->input('category');
}
if($request->input('subcategory')){
    $fields['sub_category'] = $request->input('subcategory');
}
$Expence=DB::table('expencedetails')
           ->where('id',$request->input('id'))
           ->update($fields);
  • 如果请求有类别,则更新类别
  • 如果请求只有sub_category,则更新sub_category
  • 如果请求同时包含category和sub_category,则更新两者

1
投票

请参阅https://laravel.com/docs/5.0/queries#updates

句法:

->update(['votes' => 1]);

我认为您的更新缺少参数

->update(['$field'])

更改后可能有所帮助:

->update(['your_column_name_here' => $field])
© www.soinside.com 2019 - 2024. All rights reserved.