• ベストアンサー

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なるはずなのですが ・・・なぜでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#45409
noname#45409
回答No.2

多分、PHPで書いてますよね。 で、本件に限らずですが echo $sql; とかしてしまう方が早いですよ。 ある程度のデバッグは自力で出来ないと、激しく生産効率が悪いはずです。SQLであればechoして手動実行すれば、SQLを組み立てられるレベルがあれば、何が悪いかも気付けるはずです。エラーも目の前で出ますし。

その他の回答 (1)

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

$year-$month-$dayの各変数にデータが入ってないのでは? 最近のphpでは、register_globalsはoffだから、 if( array_key_exists('year', $_POST ) ){ $year = $_POST['year']; }else{ $year = 0; } のように明示的に代入する必要があります。