незаконно 0000-00-00 00:00:00 отметка времени отправляется php в mysql с использованием codeigniter - PullRequest
6 голосов
/ 02 июня 2011

вот функция 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? [Приписка я проверил, что поле отметки времени в моей таблице mysql является полем отметки времени]

Ответы [ 4 ]

5 голосов
/ 02 июня 2011

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

вместо этого

'timestamp' => time()

Использовать

'timestamp' => date('Y-m-d H:i:s')

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

3 голосов
/ 02 июня 2011

Вам необходимо указать строку с отметкой времени, а не целое число. Попробуйте:

'timestamp' => date('Y-m-d H:i:s', time()),
3 голосов
/ 02 июня 2011

Использование date('Y-m-d H:i:s', time());

;)

2 голосов
/ 02 июня 2011

время форматирования: date('Y-m-d H:i:s', time())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...