サイトを検索しましたが、同様の質問と回答が見つかりましたが、回答を見つけることができませんでした。4時間の検索の後、私は弾丸を噛んで質問することにしました.
必須ではないフォームに 4 つの日付フィールドがあります。いずれかのフィールドにエントリがある場合はデータベースに日付を入力し、空白のままの場合は null を入力したいと思います。
値が空かどうかをチェックするifステートメントがあり$value = null
、そうでない場合は日付に変換するために使用$value = date("Y-m-d",strtotime($_post['value']))
しますが、これはうまく機能します。
問題は私のクエリにあります。「$value」を使用すると、日付は正しく挿入されますが、null 値は挿入されません。これは、「null」を使用すると SQL が文字列と見なすためです。$value だけを使用すると、null は問題なく挿入されますが、日付は 0000-00-00 になります。
どんなアドバイスでも大歓迎です
今までアドバイスありがとう…
Null が許可されています。これは私のスクリプトです...
if(empty($_POST['fp32_original_install_date'])){
$fp32_install = NULL;
}else{
$fp32_install = date("Y-m-d",strtotime($_POST['fp32_original_install_date']));
}
$sql = "INSERT INTO accounts_cstm (id_c, support_c, install_date_c, sware_renewal_date_c, product_key_c, account_status_c, fp32_support_type_c, fp32_support_renewal_date_c, fp32_original_install_date_c) VALUES ('$Guid','$cdr_support', '$cdr_install', '$cdr_renew', '$prod_key', '$account_status', '$fp32_support', '$fp32_renew', $fp32_install)";
クエリで $fp32_install を使用すると、null 値は問題なく入力されますが、日付は 0000-00-00 として入力されます。「$fp32_install」を使用すると、日付は問題なく入力されますが、NULL 値は 1970-01- として入力されます。 01 (おそらく 'NULL' を文字列と見なすため)
$fp32_install をエコーすると、値は 2012-08-16 と表示され、列の SQL タイプは日付で、デフォルトは NULL です。