【问题标题】:Adding 1 day to NOW() in php在 php 中向 NOW() 添加 1 天
【发布时间】: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 舞蹈。

标签: php sql mysqli timestamp


【解决方案1】:

只需执行 INSERT,您不需要 2 次往返数据库

INSERT INTO table (c1,c2,somedate) VALUES (1,2, CURDATE() + interval 1 day)

【讨论】:

  • 这是我的查询,由于某种原因它不起作用。 : $result = mysqli_query($conn,"INSERT INTO images (image_id, user_id, image, longitude, latitude, city, delete_at) VALUES ('$uuid','$user','$image','$longitude', '$latitude','$curr_city', CURDATE() + 间隔 1 天)");
  • 当我在 phpmyadmin 中运行它时它可以工作,但是它在 php 脚本中不起作用
  • 没关系,我的错,我忘记清空之前的测试数据中的表,所以主键冲突
猜你喜欢
  • 2011-04-22
  • 2012-01-22
  • 2011-03-05
  • 1970-01-01
  • 2013-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-17
相关资源
最近更新 更多