簡體   English   中英

PHP更新查詢錯誤

[英]php update query error

我正在嘗試更新我的帳戶信息,但始終遇到相同的錯誤

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");
    }
}

形式會像這樣

正在收到此錯誤

編輯

如果出現$this->userID為空(每次您從注釋中echo $query_update的ing)。 看到我的回答也怎么還站在您的查詢就會甚至失敗$this->userID包含的值,我決定用這個編輯到位離開這里。

原版的

如果您在上啟用了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常量的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM