我正在尝试更新我的帐户信息,但始终收到相同的错误
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");
}
}
答案 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的更多信息。