我写了一个流明代码来更新我的表字段,这是我的代码 -
$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
set0
= $ field其中id
= 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);
请参阅https://laravel.com/docs/5.0/queries#updates
句法:
->update(['votes' => 1]);
我认为您的更新缺少参数
->update(['$field'])
更改后可能有所帮助:
->update(['your_column_name_here' => $field])