- ベストアンサー
dateのDBデータ挿入について
1つのフィールド(birthday)に $_POST['year'],$_POST['month'],$_POST['day'], をフォームからDBに送りたいのですが、 $sql=" INSERT INTO users( 'passwd', 'name', 'name_kana', 'seibetu', 'birthday', 'email', 'postal_code', 'xmpf', 'address1', 'address2' ) VALUES( '$passwd', '$name', '$name_kana', '$seibetu', '$year-$month-$day', '$email', '$postal_code', '$xmpf', '$address1', '$address2' )" では Column count doesn't match value count at row 1 がでしまいます 'birthday'はdeta型なので0000-00-00なるはずなのですが ・・・なぜでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
多分、PHPで書いてますよね。 で、本件に限らずですが echo $sql; とかしてしまう方が早いですよ。 ある程度のデバッグは自力で出来ないと、激しく生産効率が悪いはずです。SQLであればechoして手動実行すれば、SQLを組み立てられるレベルがあれば、何が悪いかも気付けるはずです。エラーも目の前で出ますし。
その他の回答 (1)
- hrm_mmm
- ベストアンサー率63% (292/459)
$year-$month-$dayの各変数にデータが入ってないのでは? 最近のphpでは、register_globalsはoffだから、 if( array_key_exists('year', $_POST ) ){ $year = $_POST['year']; }else{ $year = 0; } のように明示的に代入する必要があります。