此代码无效原因:(
$id = $temp['curchar'];
$data=strtotime(date('Y-m-d H:i:s'))+30; //+30 seconds to unix time
mysql_query("UPDATE `chars` SET data='$data' WHERE id='$id'");
警告:mysql_error():提供的参数不是第23行的C:\ Program Files \ WebServ \ httpd \ world_1 \ char_info_slow.php中的有效MySQL-Link资源
答案 0 :(得分:1)
太多问题,您可以从检查
开始data
的列类型是什么?$id
是否匹配表中的任何记录?PS:
$data=strtotime(date('Y-m-d H:i:s'))+30; <-- wordless ...
$data = time()+30;
PPS:
至少,你应该试试
$sql = "UPDATE `chars` SET data='$data' WHERE id='$id'";
mysql_query($sql) or trigger_error(mysql_error()." in ".$sql);
答案 1 :(得分:1)
没有理由在PHP中生成日期只是为了在MySQL中进行日期算术。你可以在mysql中更容易地做到这一点:
UPDATE chars
SET data=DATE_ADD(data, INVERVAL 30 SECOND)
WHERE id=$id
当然,这假设您已将data
设为日期时间类型字段。如果它只是一个int,那么为什么还要考虑所有日期数学,只需data=data+30
。
同样,你以非常低效的方式产生你的时间价值。您将当前日期格式化为字符串,将该字符串转换为数字,并向其添加30。为什么不做呢
$data = time() + 30;
代替? time将当前日期/时间作为单个整数(unix时间戳)返回,从而节省了通过String Land的往返。