【问题标题】:How can I add the current date to my database table using php如何使用 php 将当前日期添加到我的数据库表中
【发布时间】:2017-07-08 19:56:52
【问题描述】:

用户将信息添加到文本框中。当他们单击发送时,使用此 php 代码将信息添加到数据库表中:

$sql = "INSERT INTO mytable (id, number, date)
VALUES ('', '$_POST[number]', 'date(1)')";

'id' 是 phpmyadmin 设置中的自动 id,所以它留空。我希望当前日期也显示在表格中。

我虽然通过输入 date(1) 来获取日期,但它似乎没有。 有什么想法吗?

我在 phpmyadmin 中设置日期列来接收日期。所以当我将代码设置为:

$sql = "INSERT INTO mytable (id, number, date)
VALUES ('', '$_POST[number]', '')"; 

它只是在我的桌子上给了我 0000-00-00。 任何想法如何解决这一问题?这样我可以得到当前日期吗?

【问题讨论】:

  • Mysql函数NOW()
  • 另外,如果id 是auto_increment 列,则无需将其放入查询中:$sql = "INSERT INTO mytable` (number, date) VALUES ('$_POST[number]', NOW())";`。而且此代码容易受到 SQL 注入攻击,请使用数据库层的适当转义函数。

标签: php mysql database date phpmyadmin


【解决方案1】:

使用MysqlNOW():-

$sql = "INSERT INTO mytable (number, date) VALUES ('".$_POST['number']."', NOW())";//check the quotes too

注意:-

1.我希望idPRIMARY AUTO-INCREMENTED的值,所以不需要传递它。

2.此外,此代码易受 SQL 注入攻击。请阅读 PHP mysqli_*PDO 以及 prepared statements 以防止它。

【讨论】:

    【解决方案2】:

    通过将其括在单引号中,您实际上是在传递一个字符串值。您可以使用MYSQL now() 或为列设置default 值,以便在未提供日期时自动提供日期。

    $sql = "INSERT INTO mytable (number, date)
    VALUES ('". $_POST['number'] ."', NOW())";
    

    注意$_POST['number'] 周围的引号,因为这也可以追溯到上述问题。您要确保正确转义值,否则将传递字符串而不是所需的值。

    【讨论】:

      猜你喜欢
      • 2011-09-27
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多