こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

投稿日時 - 2007-12-07 18:56:19

QNo.3578989

すぐに回答ほしいです

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

多分、PHPで書いてますよね。
で、本件に限らずですが

echo $sql;

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

投稿日時 - 2007-12-09 01:32:50

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.1

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

投稿日時 - 2007-12-08 14:06:57

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-