私はこれを理解するのに苦労しています-それは十分に文書化された質問のようですが、私の問題を完全に解決するのに十分な解決策はありません。
基本的に、私は今後のイベントを保存する私たちのウェブサイトのデータベースを持っています。これらのイベントには複数のイベントが表示されることがあるため、表示されている場合はこれらの日付を入力できるフィールドがあります。ほとんどの場合、入力する日付は1つだけなので、追加の日付フィールド(date2、date 3など)は空白です。それらが空白の場合は、それらをNULLとしてmysqlデータベースに保存する必要があります。
mySQLに値を投げるために私が持っているものの例は次のようになります:
if (empty($_POST['date2']))
{$date2 = NULL;
}
else
{$date2 = mysql_real_escape_string(date("Y-m-d",strtotime($_POST['date2'])));
}
それが想定されていることをしている。次のように変数を更新しようとすると、問題が発生します。
mysql_query("UPDATE events
SET date2='".mysql_real_escape_string($date2))."',
mySQLはこの値が何であるかを知らないので(明らかに、文字列をエスケープしたり、NULLで日付をフォーマットしたりすることはできないため)、代わりに値を0000-00-00として保存します(または1969-12-31 ...問題を解決するための私の試み)。私が理解できないのは、''を使用せずにdate2の値を入力する方法です。
date2 = $ date2に変更しようとしましたが、コードが実行されず、エラーが発生します。 date2 ='$ date2'、実行します-しかし、ここでもNULLを正しく保存していません(NULLではなく'NULL'を保存しているためだと思いますか?)。
何かアドバイス?