php
  • mysql
  • 2016-04-30 77 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' ='' –

    相關問題