感谢所有给我一些建议和答案的人。由于我对此很陌生,我必须为一些不好的问题和技术术语道歉。我决定使用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">
结果:
signup_date
显示。expiry_date
未显示任何数据。问题:
答案 0 :(得分:0)
根据你上面的例子:
NOW()
(MySQL函数),到期日期为30天。您无需通过表单发送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
);
}