我有一个非常简单的问题,但我无法对它进行排序,相对较新的PHP和MySQL,这就是我挣扎的原因
概述 - 我想使用PHP
将ISO8601日期插入MySQL数据库表我有一个text.xml文件,其中有一个时间戳(在MeanPublic下),其中是ISO8601格式,即YYYY-MM-DDTHH:MM:SS
我可以用PHP读取文件,我可以回复ISO8601的日期,但是,如果我将它插入MySQL它只是登录0000-00-00 00:00:00。我已经尝试从日期中删除“T”但是没有用。
我尝试在vchar,char,int,date,datetime和time中设置数据库表字段,什么都没有。但是,如果我在插入中插入一个手动日期/时间,则插入确定。
将日志记录为日期/时间至关重要,因为我需要稍后对这些值运行日期/时间查询
这是代码
if( ! $xml = simplexml_load_file('test.xml') )
{
echo 'unable to load XML file';
}
else
{
foreach( $xml as $MeanPublic )
{
$key = split(":", $MeanPublic->Key);
$meanvalue = $MeanPublic->Mean;
$FTSvalue = str_replace('T', ' ', $MeanPublic->Timestamp);
mysql_query("INSERT INTO table (totwhout, wbstamp) VALUES ($meanvalue, $FTSvalue)");
}
答案 0 :(得分:2)
您可能已经检查了这个,但是在构造查询时是否在时间戳值周围加上单引号?从你发布的代码来看,它看起来不像你--MySQL期望TIMESTAMP值在这方面像字符串一样传递。
答案 1 :(得分:1)
看起来这个问题不是由DATE / TIME格式引起的。您应该在SQL中使用引号括起字符串。
mysql_query("INSERT INTO table (totwhout, wbstamp) VALUES ('$meanvalue', '$FTSvalue')");