sqlstate[42s22]:找不到列:“field list”中的1054未知列“0”

dsekswqp  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(376)

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

$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:更新) expencedetails0 =$字段 id = 1)

os8fio9y

os8fio9y1#

你可能需要重写你的逻辑

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

如果请求有类别,则更新类别
如果请求只有子类别,则更新子类别
如果请求同时具有类别和子类别,则更新这两个类别

yqhsw0fo

yqhsw0fo2#

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

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

我认为你的更新缺少参数

->update(['$field'])

以下更改可能会有所帮助:

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

相关问题