php
  • mysql
  • 2016-04-30 81 views 0 likes 
    0

    我试图更新我的帐户信息,但得到了同样的错误,所有的时间PHP更新查询错误

    public function update_user() { 
    $obj_db = $this->obj_db(); 
    $query_update = "update `users` set " 
          . "first_name='$_POST[first_name]'," 
          . "middle_name='$_POST[middle_name]'," 
          . "last_name='$_POST[last_name]'," 
          . "email='$_POST[email]'," 
          . "gender='$_POST[gender]'," 
          . "contact_number='$_POST[contact_number]'" 
          . "where `userID` = '$this->userID'"; 
    
    
        $r4 = $obj_db->query($query_update); 
    
        if ($obj_db->affected_rows == 0) { 
         throw new Exception(" * Update user information error <br> Nothing Update"); 
        } 
    } 
    

    form will be like this

    Am getting this error

    +1

    向我们展示了'

    ...
    '代码。 – Webeng

    +0

    先生,我编辑了帖子 –

    +0

    请检查一下 –

    回答

    0

    编辑

    如果显示了$this->userID是空的(你的echo'$query_update来自评论)。看到我的回答确实仍然存在,因为您的查询甚至会失败,即使$this->userID包含一个值,我已决定在此处放置此编辑。

    ORIGINAL

    如果你已经使用error_reporting上,你会收到一个“注意:使用未定义的常量”,或者诸如此类的话,如您$_POST数组键需包裹在引号,像这样:

    $_POST['contact_number'] 
    

    相反的:

    $_POST[contact_number] 
    
    然后

    $query_update变量将变成:

    $query_update = "update `users` set " 
            . "first_name='$_POST['first_name']'," 
            . "middle_name='$_POST['middle_name']'," 
            . "last_name='$_POST['last_name']'," 
            . "email='$_POST['email']'," 
            . "gender='$_POST['gender']'," 
            . "contact_number='$_POST['contact_number']'" 
            . "where `userID` = '$this->userID'"; 
    

    因为你的数组键没有在他们认为报价包裹(通过PHP解析器)是常数。由于它们不是常量,在应用程序中定义,它们不是有效的数组键。但是,这只会引发通知,这就是您的脚本继续执行的原因。

    您可以阅读更多关于PHP constants here

    +0

    不起作用 $ query_update =“update'users' set” 。 “first_name ='”。$ _ POST ['first_name']。“',” 。 “middle_name ='”。$ _ POST ['middle_name']。“',” 。 “last_name ='”。$ _ POST ['last_name']。“',” 。 “email ='”。$ _ POST ['email']。“',” 。 “gender ='”。$ _ POST ['gender']。“',” 。 “contact_number ='”。$ _POST ['contact_number']。“'” 。 “where userID' ='$ this-> userID'”; –

    +0

    将此添加到您的脚本并重新运行:'echo $ query_update;'您是否获得了期望的查询值? – Marcus

    +0

    得到这个输出 update'users' set first_name ='Husnain',middle_name ='Ali',last_name ='Khan',email ='husnainali5 @ gmail.com',gender ='Male',contact_number ='03346767666' where userID' ='' –

    相关问题