0

我正在尝试SELECT使用 codeigniter 做一些简单的 mysql 数据。

//setup query
$this->db->select('personId, birthday')
    ->from('person')
    ->where('personId', $personId)
    ->limit(1);

    //execute query
    $query = $this->db->get();

    //fetch result
    $result = $query->row_array();

        //found person
        if(!empty($result)){
            echo $result['birthday'];
        }
    }
}

birthday字段在 mySQL 中作为一种DATE类型。数据库中的值和 phpMyAdmin 中看到的值是“1980-05-21”,但上面代码中回显的值只是“1980”,只是年份。

我尝试将 mysql 类型切换为DATETIME但什么也没做。

我的猜测是它与 Codeigniter 有关,甚至可能与结果中的“-”字符有关。这个问题快把我逼疯了!有人遇到过这个问题,知道如何解决吗?

4

2 回答 2

0

我复制了您的代码,一切正常,可能是您的 php.ini 中的某些内容。如果您有国际扩展名,请设置 date.timezone 并检查区域设置。出于测试目的,在 echo $result 之后尝试 die() ......也许它正在发生之后。我使用 CodeIgniter 2.1.3 版本测试您的代码。

于 2013-11-07T21:27:41.167 回答
0

这不是您问题的直接答案,因为我不确定您的问题,date但您似乎可以选择更改该字段,因为您已经更改过一次(如您的问题中所述)所以,在我看来,使用 a比使用timestamp更好date/datetime,这是一个很好的答案,所以,我认为如果你将类型更改为timestamp它可能会解决问题,并且很容易处理 a 上的任何类型的操作timestampCodeIgniter还有一个Date Helper来处理日期它很容易,但这只是一种选择,您也可以使用PHP's 的内置函数。

这只是一个观点,我更喜欢timestampdate/datetime至少,我不需要在yyyy-mm-ddand之间交换顺序dd-mm-yyyy,而是可以使用类似date('d-m-Y', $timestamp);from 的东西来创建它timestamp

于 2013-11-07T21:35:02.010 回答