带DATE_ADD的PHP无效

时间:2012-12-24 18:20:13

标签: php

感谢所有给我一些建议和答案的人。由于我对此很陌生,我必须为一些不好的问题和技术术语道歉。我决定使用DREAMWEAVER来完成这个并且仍然有一些问题。 这些是我所做的改变:

1.将'expiry_date'字段更改为NULL,因为当我提交带有'NOT NULL'的表单时,它没有通过(expiry_date DATE NULL,)。

2.这是我的代码

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) 
{
    $template = "INSERT INTO expirydate_table "
              . "(firstname, lastname, email, password, "
              . "signup_date, expiry_date) "
              . "VALUES (%s, %s, %s, %s, %s, %s)";

    $insertSQL = sprintf(
        $template,
        GetSQLValueString($_POST['firstname'], "text"),
        GetSQLValueString($_POST['lastname'], "text"),
        GetSQLValueString($_POST['email'], "text"),
        GetSQLValueString($_POST['password'], "text"),
        GetSQLValueString($_POST['signup_date'], "date"),
        GetSQLValueString($_POST['expiry_date'], "date")
    );

3.隐藏文件'signup_date'和'expiry_date'的表单

<input type="hidden" name="signup_date" value="<?php echo $row_RecRegister3['NOW()']; ?>">
<input type="hidden" name="expiry_date" value="<?php echo $row_RecRegister3['DATE_ADD(NOW() , INTERVAL 30 DAY))']; ?>">
<input type="hidden" name="MM_insert" value="form1">

结果:

  1. 我可以在数据库中提交表单和signup_date显示。
  2. expiry_date未显示任何数据。
  3. 问题:

    1. 是否有任何功能可以使其工作或替换'DATE_ADD(NOW(),INTERVAL 30 D')?

1 个答案:

答案 0 :(得分:0)

根据你上面的例子:

  • 您的表单使用signup_date = NOW()(MySQL函数),到期日期为30天。
  • 您的PHP代码段是为MySQL创建插入语句的代码片段。

您无需通过表单发送signup_date和失效日期。您所要做的就是在插入语句中进行设置。

所以你的表格将是:

<input type="hidden" name="MM_insert" value="form1"> 

和你的PHP

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) 
{
    $template = "INSERT INTO expirydate_table "
              . "(firstname, lastname, email, password, "
              . "signup_date, expiry_date) "
              . "VALUES (%s, %s, %s, %s, %s, %s)";

    $now     = new DateTime();
    $signup  = $now->format('Y-m-d H:i:s');
    $future  = $now->add(new DateInterval('P30D'));
    $expiry  = $future->format('Y-m-d H:i:s');

    $insertSQL = sprintf(
        $template,
        GetSQLValueString($_POST['firstname'], "text"),
        GetSQLValueString($_POST['lastname'], "text"),
        GetSQLValueString($_POST['email'], "text"),
        GetSQLValueString($_POST['password'], "text"),
        $signup,
        $expiry
    );
}