我想向当前系统添加一个新字段,一个last_pwd_modified字段,每当用户想要更改密码时,该字段都会将当前时间戳存储在数据库中。
我在调试几个小时时遇到了问题,因为 last_pwd_modified 字段不会将当前时间存储在 db 中,并且还会不断发生 500(内部服务器错误)。我认为这可能是通过last_pwd_modified错误的方式,我尝试了其他几种通过它的方法,但一直失败。
任何专家都可以指出我的代码中似乎存在的问题。真的很感激,提前感谢您的时间。
这是我的模型
public function changePasswd($uid, $newpassword) {
$conditions=array();
$modelData = array(
'upwd' => sha1(strip_tags($newpassword)),
'uid' => $uid,
'last_pwd_modified' => "CURRENT_TIMESTAMP()"
);
$this->save($modelData);
}
这是我的控制器中的一行调用函数
$this->users->changePasswd($uid,$ret_pwd);
这是我的观点模型
var changePassword = function () {
var $result = {};
$.ajax({
url: "users/changepwd",
type: "POST",
async: false,
data: $("#changePasswordID").serialize(),
success: function(result) {
$result = $.parseJSON(result);
}
});
}
你需要使用 UNIX_TIMESTAMP
. CURRENT_TIMESTAMP
返回日期,如 Y-m-d H:i:s
.使用UNIX_TIMESTAMP
不带参数。
此外,数据库库可以使用预准备语句或转义。可能你不能使用 mysql 函数作为值。我想你可以试试'last_pwd_modified' => time()
.