如何检查更新的给定值不会进入php中的数据库

时间:2016-06-17 11:46:00

标签: php laravel

我正在使用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部分消息,即使该值已更新到数据库中..

我应该怎么做..

还有其他选择吗!! ..

有人帮助我......

3 个答案:

答案 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,因为它返回受数据库事务影响的行数。

所以你应该检查整数值,而不是它是真还是假