質問: sprintf('%04d',$i)) ? "selected":""; print '' . sprintf("%04d",$i) . '' . "\n"; } print ' 年' . "\n"; (文字数のためb_monthとb_dayを省略) ?> complete.php とフォームを入力してデータベースに登録をするという流れです。 ご質問ですが、フォームに項目を入力して登録するとデータベースに登録がされます。 しかし、数字のみ($number、$height、$weight)の場所を未入力にするとエラーが出力されます。 エラーは 「you have an error in your sql syntax; check the manual that corresponds to your mysql server version for the right syntax to use near」です。 mysqlは下記のように設定しています。 id varchar(20) none password varchar(255) none first_name varchar(8) null last_name varchar(8) null first_kana varchar(8) null last_kana varchar(8) null b_year int(4) null b_month int(2) null b_day int(2) null number varchar(2) null height varchar(3) null weight varchar(3) null 未入力でもエラーが表示されずデータベースに入力されたとこだけ登録されるようにするにはどうしたらよろしいのでしょうか? お分かりの方がいらっしゃいましたらご教授お願いいたします。
回答: > values('$id',$password,'$first_name','$last_name','$first_kana','$last_kana',$year,$month,$day,,$number,$height,$weight"); 最後の3個、varchar なのにクォートで囲んでないからだと思いますよ。 あと、最後だけダブルクォートだったり、カンマが二つ並んでたり。