在时间戳中存储当前时间
问题描述:
我想向当前系统添加一个新字段,即last_pwd_modified字段,每当用户想要更改其密码时,该字段将以db为单位存储当前时间戳。在时间戳中存储当前时间
我有一个问题调试了几个小时,因为last_pwd_modified字段不会将当前时间存储在数据库中,而且还会出现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);
}
});
}
答
您需要使用UNIX_TIMESTAMP
。 CURRENT_TIMESTAMP
返回日期,如Y-m-d H:i:s
。无参数使用UNIX_TIMESTAMP
。
此外,您的数据库库可以使用准备好的语句或转义。可能你不能使用mysql函数作为值。我想你可以试试'last_pwd_modified' => time()
。
'CURRENT_TIMESTAMP'不带参数。 – mudasobwa 2014-11-24 09:55:09
我试过这**'last_pwd_modified'=>“CURRENT_TIMESTAMP()”**首先仍然有相同的错误。也许你知道另一个原因? – lizzie288 2014-11-24 09:59:33
我会设置内部mysql触发器的默认值。在表定义中:'CREATE TABLE .... LAST_MOD ... DEFAULT NOW()'。 – mudasobwa 2014-11-24 10:02:30