【问题标题】:Storing the date in database将日期存储在数据库中
【发布时间】:2012-01-14 00:43:19
【问题描述】:

嗯,我有一个任务将“报价”存储到数据库中(已经完成)并显示它们并将它们整理出来以获取最新的报价。我假设要获得“最新”,我需要存储提交报价的日期/时间。

我是 PHP 新手,正在努力学习,所以我不知道该怎么做。

这是用于将引号添加到数据库的 PHP。表中有两列称为“quotes”和“id”。我猜我也需要为日期写一列?

require('includes/connect.php');


    $quote = $_POST['quote'];
    $quotes = mysql_real_escape_string($quote);


    mysql_query("INSERT INTO entries (quote) VALUES('$quotes')")
    or die(mysql_error());

我还要如何插入日期?

【问题讨论】:

    标签: php sql database date time


    【解决方案1】:

    如果要插入 current 日期,请使用 CURDATE()

    示例:

    $query_auto = "INSERT INTO tablename (col_name, col_date) VALUE ('DATE: Auto CURDATE()', CURDATE() )";
    

    但如果你手动设置它,那么应该使用这个:

    $query_manual = "INSERT INTO tablename (col_name, col_date) VALUES ('DATE: Manual Date', '2008-07-04')";
    

    更新

    CREATE TABLE auto_ins
        (
            `MySQL_Function` VARCHAR(30),
            `DateTime` DATETIME,
            `Date` DATE,
            `Time` TIME,
            `Year` YEAR,
            `TimeStamp` TIMESTAMP
        );
    
    INSERT INTO auto_ins
        (`MySQL_Function`, `DateTime`, `Date`, `Time`, `Year`, `TimeStamp`)
    VALUES
        (“CURDATE()”, CURDATE(), CURDATE(), CURDATE(), CURDATE(), CURDATE());
    

    【讨论】:

    • 所以我不需要新专栏?
    • 当然NOW() 会更适合在此处显示,同时带有时间组件。
    【解决方案2】:

    如果您只想要最近的报价,您可以简单地按他们的id DESC 对结果集进行排序,假设 id 是一个自动递增的值。

    【讨论】:

      【解决方案3】:

      是的,你需要第三列让我们说 most_recent(定义为日期或日期时间):

      mysql_query("INSERT INTO entries (quote, most_recent) VALUES('$quotes', now())")
      

      【讨论】:

      • 新列的结构是什么?
      【解决方案4】:

      您至少需要几个提交报价的表格和报价表格本身。

      create table users(id int primary key not null, username varchar(32),pwd varchar(32));
      

      您可以将任何信息添加到该表中,例如电子邮件地址等。

      create table quotes (
      id int not null , 
      user_id integer,
      quote_text varchar(256),
      inserted_date timestamp default current_timestamp ,primary key (id));
      alter table quotes add constraint fk_users foreign key(user_id) references users(id);
      

      否则请随意修改它们。 这里不是关于 php,而是关于数据库设计。

      【讨论】:

        【解决方案5】:

        使用此代码:

        require('includes/connect.php');
        
        
        $quote = $_POST['quote'];
        $quotes = now().' - '.mysql_real_escape_string($quote);
        // THIS WILL ADD THE DATE AND TIME TO YOUR $quotes STRING.
        
        
        mysql_query("INSERT INTO entries (quote) VALUES('$quotes')")
        or die(mysql_error());
        

        【讨论】:

          猜你喜欢
          • 2019-12-19
          • 1970-01-01
          • 2017-05-31
          • 2014-05-04
          • 1970-01-01
          • 2011-04-17
          • 2014-05-09
          • 2013-09-01
          • 1970-01-01
          相关资源
          最近更新 更多