-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 の挿入ステートメントを作成するものです。

フォームから 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
    );
}
于 2012-12-24T18:41:07.633 に答える