我构建了我的网站,以下列格式将日期写入数据库列: 2014年4月1日
现在我已经意识到当我想按日期排序或操纵日期时这没有用,所以我决定将所有日期更改为时间戳。
我应用了以下修复:
$sql = mysql_query("SELECT * FROM TABLE")or(die(mysql_Error()));
while($info = mysql_fetch_array($sql)){
$newdate = strtotime($info['date']);
mysql_query("UPDATE TABLE SET date = '$newdate' WHERE id = $info[id]")or(die(mysql_error()));
}
问题是所有的日期列现在都是空的,我做错了什么?
答案 0 :(得分:0)
这一行看起来像语法错误:
mysql_query("UPDATE TABLE SET date = '$newdate' WHERE id = $info[id]")
or(die(mysql_error()));
尝试将其更改为:
mysql_query("UPDATE TABLE SET date = '$newdate' WHERE id = {$info['id']}")
or (die(mysql_error()));
原因是当将数组索引插入字符串时,必须用{}
包围它们,否则PHP会尝试将$info
转换为字符串并在其后插入[id]
,我猜你不打算这样做。
我还建议检查strtotime
的返回值。如果它无法解析日期,则返回false
,我猜你不想将其插回到数据库中。