php更新json中的数据库中,php – 在json中丢失字段时无法更新数据库

我正在制作一个API,可以帮助用户按照输入数据更新他们的信息.但是当输入json有字段“password”时它会成功更新但是当json没有这个字段时我无法更新数据库中的数据.这是我用来更新数据的代码:

public function updateUserInfo(Request $request){

$postData = $request->all();

$data = json_decode($postData['postData'], true);

if(isset($data['password'])){

$data['password'] = bcrypt($data['password']);

}

$popData = $data['UserId'];

unset($data['UserId']);

$updateInfo = array();

foreach($data as $info){

if($info != null){

$updateInfo[] = $info;

}

}

$result = DB::update(GeneralFunctions::makeUpdateString($data, 'User', ' UserId = '.$popData), $updateInfo);

if($result != null && $result == true){

return response()->json(['success'=>true, 'data'=>'Update Successful']);

}else{

return response()->json(['success'=>false, 'error'=>'We have encountered an error, try again later!']);

}

}

当一切正常时,这是json:

$postData = '{ "UserId" : "1", "password":"12345", "UserName": "minhkhang", "Address": "11/200" }'

这是json会导致错误,因为它缺少密码字段:

$postData = '{ "UserId" : "1", "UserName": "minhkhang", "Address": "11/200" }'

这是我用来使更新字符串跟随输入json的代码:

public static function makeUpdateString($keyvalarr, $table, $where){

$stringSQL = 'UPDATE '.$table. ' SET ' ;

foreach($keyvalarr as $fieldname => $updateval){

if($updateval != null){

$stringSQL .= $fieldname.' = ? , ';

}

}

$stringSQL = substr($stringSQL, 0, -2);

if($where != null){

$stringSQL .= 'WHERE '.$where;

}

return $stringSQL;

}

谢谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值