вот функция 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())