-1

感谢所有给我一些建议和答案的人。由于我对此很陌生,因此我必须为一些糟糕的问题和技术术语道歉。我决定使用 DREAMWEAVER 来完成这项工作,但仍然存在一些问题。这些是我所做的更改:

1.将'expiry_date'字段更改为NULL,因为当我提交带有'NOT NULL'的表单时,它没有通过(expiry_dateDATE 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没有显示任何数据。

问题:

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

1 回答 1

0

根据你上面的例子:

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

您无需通过表单发送注册日期和到期日期。您所要做的就是在您的插入语句中设置它。

所以你的表格将是:

<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
    );
}
于 2012-12-24T18:41:07.633 回答