незаконно 0000-00-00 00:00:00 timestamp отправляется php в mysql с использованием codeigniter

вот функция Database_update_entry в моей модели CodeIgniter, которая выполняется при успешной отправке формы.

<?php function update_entry(){ $data = array( 'sl' => $this->input->post('item_sl'), 'item_name' => $this->input->post('item_name'), 'img_url' => $this->input->post('img_url'), 'sound_url' => $this->input->post('sound_url'), 'price' => $this->input->post('price'), 'unit' => $this->input->post('unit'), 'timestamp' => time(), ); echo "current time: ". time(); $this->db->update(MY_TABLE_NAME, $data); } ?> 

запрос базы данных выполняется нормально … но время, которое устанавливается в таблицу mysql, 0000-00-00 00:00:00, тогда как оператор <?php echo time() ?> показывает 1307018223 в браузере. .. который является допустимой отметкой UNIX … вы можете проверить правильность срока действия здесь .

вот скриншот таблицы, которая берет данные из таблицы mySQL после успешной update_query http://s3.amazonaws.com/awesome_screenshot/658523?AWSAccessKeyId=0R7FMW7AXRVCYMAPTPR2&Expires=1307020816&Signature=AncPjnzG9p9QTX7zebZp7c9teB0%3D

Что я делаю не так??? как я могу передать юридическую метку времени с моего php на mySQL? [ps я проверил, что поле timestamp в моей таблице mysql является полем временной метки]

Поле timestamp mysql принимает yyyy-mm-dd H:i:s формат даты, поэтому вам нужно передать дату в этот формат, а не временную метку UNIX

вместо этого

 'timestamp' => time() 

использование

 'timestamp' => date('Ymd H:i:s') 

Если вы действительно хотите сохранить изменение UNIX time stamp введите тип поля CHAR

Использовать date('Ymd H:i:s', time());

😉

Вам нужно указать строчку штампа времени, а не целое число. Пытаться:

 'timestamp' => date('Ymd H:i:s', time()), 

format time: date('Ymd H:i:s', time())