我想在当前系统中添加一个新字段,即last_pwd_modified字段,只要用户想要更改密码,就会在db中存储当前时间戳。
我在调试这个问题好几个小时,因为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);
这是我的viewModel
var changePassword = function () {
var $result = {};
$.ajax({
url: "users/changepwd",
type: "POST",
async: false,
data: $("#changePasswordID").serialize(),
success: function(result) {
$result = $.parseJSON(result);
}
});
}
答案 0 :(得分:0)
您需要使用UNIX_TIMESTAMP
。 CURRENT_TIMESTAMP
返回Y-m-d H:i:s
之类的日期。不带参数使用UNIX_TIMESTAMP
。
此外,您的数据库lib可以使用预准备语句或转义。可能你不能使用mysql函数作为值。我想你可以试试'last_pwd_modified' => time()
。