我正在使用laravel进行webservice,在这里我需要在将值更新到数据库之后发送响应...
我尝试过这样的事情,
public function getPhoneverify(){
$_REQUEST['user_id'] = str_replace('"','', $_REQUEST['user_id']);
$_REQUEST['status'] = str_replace('"','', $_REQUEST['status']);
$user = \DB::table('tb_users')->where('id', $_REQUEST['user_id'] )->update(array('phone_verified' => $_REQUEST['status']));
if($user)
{
echo "success";exit;
}
else
{
echo "failed";exit;
}
}
但是在这里,它始终会显示else部分消息,即使该值已更新到数据库中..
我应该怎么做..
还有其他选择吗!! ..
有人帮助我......
答案 0 :(得分:3)
如果您需要检查查询是否成功,我建议采用不同的方法。假设user_id
字段是唯一的,则以下操作应该起作用:
$user = \DB::table('tb_users')->where('id', $_REQUEST['user_id'] )->first();
或者您也可以像这样检索用户:
$user = \DB::table('tb_users')->find($_REQUEST['user_id']);
然后更新/保存它:
$user->fill(array('phone_verified' => $_REQUEST['status']));
$saved = $user->save(); //this will always return true or false.
if($saved)
{
echo "success";exit;
}
else
{
echo "failed";exit;
}
答案 1 :(得分:1)
如果需要,可以使用异常处理
try {
$user = \DB::table('tb_users')->where('id', $_REQUEST['user_id'] )->update(array('phone_verified' => $_REQUEST['status']));
}catch(\Exception $e){
//write statements here if query fails
}
顺便说一下,据我所知 DB :: update()返回布尔
答案 2 :(得分:0)
返回值永远不会为true,因为它返回受数据库事务影响的行数。
所以你应该检查整数值,而不是它是真还是假