0

こんにちは、私がしようとしているのは、enrollperiodであるデータベースに期間の値を挿入することです。形式は MONTH + STRTDAY + ENDDAYです。これらの値を取得するには、3 つのテキスト領域があり、次のように結合します。

   $enrollp= $_POST['month'] . $_POST['strtday'] . $_POST['endday'];

(私は今、SQL インジェクションに焦点を当てていませんが、PDO と準備済みステートメントの記事を読んで心配する必要はありません)

そして、私はこれを次のように挿入します:

   $sql="Update tbl_enroll set enrollperiod='$enrollp'";

私の問題は、登録期間が持つべきデータ型は何ですか? そして、どのように登録期間内の値を取得できるようにする必要があり、次のコードで使用します:

     if (date('m') == '09' && date('d') == '12' &&  date('d') == '12' && $allowed)

上記の行は、開始日終了日を確認するように変更されていません。実行方法がわかりません。助けていただければ幸いです。

4

2 に答える 2

2

データベース関係 (テーブル) のすべてのフィールド (属性) は ATOMIC でなければなりません。

これらの値を 1 つのフィールドにまとめる理由は何ですか? これを行う論理的な理由はありますか?

于 2012-09-15T10:41:01.783 に答える
0

この形式を使用してデータベースに保存します。

week_strtday_endday

したがって、データベースからデータを取得した後、explode関数を使用して、次のように「_」文字を使用してこれらの 3 つの部分を分割できます。

$array = explode('_', $field);
$week = $array[0];
$strtday = $array[1];
$endday = $array[2];

フィールドのタイプは、保存しようとしているデータによって異なります。たとえば、「週」が 1 ~ 53 の範囲にあり、「strtday」と「endday」が 1 ~ 7 の範囲にある場合、VARCHAR(6 )はその分野にとってクールかもしれません。

于 2012-09-15T10:41:58.913 に答える