【发布时间】:2016-02-22 16:16:04
【问题描述】:
我正在尝试使用 php 脚本将 1 天添加到我的 sql 数据库中的当前时间,然后将此值存储回数据库中。为此,我正在执行以下操作,但是当我尝试使用 mysqli 查询将 $newdate 变量存储在我的数据库中时,它不会被存储。
$time = mysqli_query($conn,"SELECT NOW() FROM cities");
$curr_time = mysqli_fetch_array($time);
$curr_date = $curr_time['NOW()'];
$newdate = strtotime ( '+1 day' , strtotime ( $curr_date) ) ;
$newdate = date ( 'Y-m-j' , $newdate );
【问题讨论】:
-
select curdate() + interval 1 day AS datealias,然后`$curr_time['datealias']。如果您只想要今天的日期,则不要从表格中选择。您将获得一个包含与表中记录一样多的“今天”日期的结果集。 cpu/网络/磁盘带宽的主要浪费。加上mysqldate->strtotime->strtotime->date也是一种浪费。您可以直接在 mysql 中使用date_format()并绕过您强制的多个字符串/时间戳转换。 -
嗯?
"SELECT NOW() FROM cities"没有意义!?! 1 为什么要访问数据库 2 为什么在"SELECT NOW()"可以使用的情况下使用表名? -
您的数据库中的哪个日期时间列?你不需要做所有这些......
-
curdate 是否会返回与 SQL 中的 NOW() 函数相同的值?我将其存储在在线服务器上,因此我不确定时区等是否会影响 curdate 和 NOW() 返回的值以及它们是否相同..
-
@mankee 如果您想稍后将
SELECT转换为INSERT,只需使用INSERT INTO table (datecol) VALUES NOW() + INTERVAL 1 DAY。根本不需要做这个 PHP 舞蹈。