我还是不习惯向mysql编写查询,所以我确定这是一个新手的错误,但我无法弄明白。
这是代码(有很多回声,所以我可以显示我的输出):
while($row = mysql_fetch_array($tempresult, MYSQL_ASSOC)){
$tempStartDate = $StartDate;
$tempEventID = $row['EventID'];
$tempDaysFromEvent = $row['DaysFromEvent'];
echo "Main Event Start Date: ".$tempStartDate."<br>";
echo "EventID: ".$tempEventID.", Start Date: ".$tempStartDate.", Days From Event: ".$tempDaysFromEvent.", Parent Event ID: ".$tempParentEventID."<br>";
$newtempStartDate = explode(" ", $tempStartDate);
echo "New Temp Start Date: ".$newtempStartDate[0];
echo "<br>";
list($year, $month, $day) = explode("-", $newtempStartDate[0]);
echo $year." ". $month. " ". $day;
echo "<br>";
$tempStartDate = $tempEndDate = date("Y-m-d", mktime(0,0,0,$month,($day+$tempDaysFromEvent),$year)) . " 00:00:00";
echo "TempStart Date:".$tempStartDate."<br>";
mysql_query("UPDATE".$eventDatabase." SET StartDate='$tempStartDate',EndDate='$tempEndDate'where EventID ='$tempEventID'");
error_reporting(E_ALL);
}
这是我的输出:
Main Event Start Date: 2011-07-04 15:00:00
EventID: 4876, Start Date: 2011-07-04 15:00:00, Days From Event: 4, Parent Event ID: 4865
New Temp Start Date: 2011-07-04
2011 07 04
TempStart Date:2011-07-08 00:00:00
输出对我来说是正确的 - 看起来我希望它在数据库中查看。我不知道问题是因为$ tempStartDate是一个字符串?它是mysql中的日期时间,但这不应该重要我不认为??
答案 0 :(得分:2)
如上面的评论中所述,您的SQL语句中似乎缺少空格。将mysql_query()
来电替换为:
mysql_query("UPDATE $eventDatabase SET StartDate='$tempStartDate', EndDate='$tempEndDate' WHERE EventID='$tempEventID'");
如果有疑问,您始终可以先将SQL查询分配给字符串变量,然后回显该字符串,以便查看完整的SQL语句,包括变量值。
答案 1 :(得分:2)
尝试回显实际的sql命令。看起来你需要在“UPDATE”之后和“WhereID = xxx”之前的空间;
在SQL管理页面中尝试并执行echo的实际输出。