2014-11-24 2 views
0

Я хотел добавить новое поле в свою текущую систему - поле last_pwd_modified, которое будет хранить текущую временную метку в db всякий раз, когда пользователь хочет изменить свой пароль.Сохранение текущего времени в timestamp

У меня проблема с отладкой в ​​течение нескольких часов с тех пор, как поле last_pwd_modified не сохранит текущее время в db, а также будет продолжаться 500 (Internal Server Error). Я думаю, что это может быть так, как прошлое 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); 
      } 
     }); 
    } 
+3

'CURRENT_TIMESTAMP' не принимает аргумента. – mudasobwa

+0

Я пробовал это ** 'last_pwd_modified' => "CURRENT_TIMESTAMP()" **, в первую очередь, все еще имея ту же ошибку. Может, вы знаете другую причину? – lizzie288

+0

Я бы установил значение по умолчанию с помощью внутреннего триггера mysql. В определении таблицы: 'CREATE TABLE .... LAST_MOD ... DEFAULT NOW()'. – mudasobwa

ответ

0

Вам необходимо использовать UNIX_TIMESTAMP. CURRENT_TIMESTAMP возвращает дату как Y-m-d H:i:s. Используйте аргумент UNIX_TIMESTAMP.

Кроме того, ваша база данных lib может использовать подготовленный оператор или escape-код. Вероятно, вы не можете использовать функцию mysql как значение. Я думаю, вы могли бы попробовать 'last_pwd_modified' => time().

Смежные вопросы