首页 文章

SQLSTATE [42S22]:找不到列:1054未知列'0' in 'field list'

提问于
浏览
1

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

$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)

2 回答

  • 1

    您可能需要将逻辑重写为

    $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,则更新两者

  • 0

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

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

    我认为您的更新缺少参数

    ->update(['$field'])
    

    更改后可能有所帮助:

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

相关问题