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

时间:2018-01-03 08:32:01

标签: mysql laravel-5 lumen

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

$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:更新expencedetails设置0 = $ field其中id = 1)

2 个答案:

答案 0 :(得分:1)

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

  

语法:

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

我认为您的更新缺少参数

->update(['$field'])

以下更改可能有所帮助:

->update(['your_column_name_here' => $field])

答案 1 :(得分: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
  • 如果请求同时包含两个类别 和sub_category然后更新两个