php更新查询错误

时间:2016-04-30 18:54:10

标签: php mysql

我正在尝试更新我的帐户信息,但始终收到相同的错误

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 个答案:

答案 0 :(得分:0)

修改

如果显示$this->userID为空(根据评论echo $query_update $this->userID。看到我的回答仍然存在,因为即使 $_POST包含值,您的查询也会失败,我决定将其留在此处这个编辑到位。

<强> ORIGINAL

如果您在上有error_reporting ,那么您将收到&#34; 通知:使用未定义的常量&#34;或其他内容效果,因为您的$_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'"; 变量将变为:

onkeyup

因为你的数组键没有用引号括起来,所以(由PHP解析器)假定它们是常量。由于它们不是在应用程序中定义的常量,因此它们不是有效的数组键。但是,这只会抛出 notice ,这就是您的脚本继续执行的原因。

您可以阅读有关PHP constants here的更多信息。