以前もご質問させていただいたのですが、調べてもわからず困り果てています。
PHPとMySQLは初心者です。
PHPのバージョンはPHP 5.2.12
MySQLのバージョンは 5.1
サーバーはさくらインターネットを使用しています。
コードは下記のとおりになります。
form.php
<html>
<body>
<form action="complete.php" method="POST">
<input type="text" name="id">
<input type="text" name="password">
<input type="text" name="first_name">
<input type="text" name="last_name">
<input type="text" name="first_kana">
<input type="text" name="last_kana">
<?php
print '<select name="b_year">'."\n";
$start = date('Y') -40;
$end = date('Y') -16;
for ($i = $start; $i <= $end; $i++) {
$selected = "";
$selected = ($_POST["b_year"] == sprintf('%04d',$i)) ? "selected":"";
print '<option value="' . sprintf('%04d',$i) . '" '.$selected.'>' . sprintf("%04d",$i) . '</option>' . "\n";
}
print '</select> 年' . "\n";
(文字数のためb_monthとb_dayを省略)
?>
<input type="text" name="number">
<input type="text" name="height">
<input type="text" name="weight">
<input type="submit" name="regist" value="登録">
<input type="reset" name="reset" value="リセット">
</form>
</body>
</html>
complete.php
<?php
・
・
$id = mysql_real_escape_string($_POST['id']);
$password = mysql_real_escape_string($_POST['password']);
$first_name = mysql_real_escape_string($_POST['first_name']);
$last_name = mysql_real_escape_string($_POST['last_name']);
$first_kana = mysql_real_escape_string($_POST['first_kana']);
$last_kana = mysql_real_escape_string($_POST['last_kana']);
$year = mysql_real_escape_string($_POST['b_year']);
$month = mysql_real_escape_string($_POST['b_month']);
$day = mysql_real_escape_string($_POST['b_day']);
$number = mysql_real_escape_string($_POST['number']);
$height = mysql_real_escape_string($_POST['height']);
$weight = mysql_real_escape_string($_POST['weight']);
・
・
$query_reg = sprintf("INSERT INTO `member` (`id`,`password`,`first_name`,`last_name`,`first_kana`,`last_kana`,`b_year`,`b_month`,`b_day`,`number`,`height`,`weight`)
VALUES('$id',$password,'$first_name','$last_name','$first_kana','$last_kana',$year,$month,$day,,$number,$height,$weight");
$result_reg = mysql_query($query_reg, $link) or die(mysql_error());
if ($result_reg) {
$msg = '登録しました。';
} else {
$msg = '登録に失敗しました。';
}
・
・
・
?>
<html><body><?php print $msg; ?></body></html>
とフォームを入力してデータベースに登録をするという流れです。
ご質問ですが、フォームに項目を入力して登録するとデータベースに登録がされます。
しかし、数字のみ($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
未入力でもエラーが表示されずデータベースに入力されたとこだけ登録されるようにするにはどうしたらよろしいのでしょうか?
お分かりの方がいらっしゃいましたらご教授お願いいたします。
No.1ベストアンサー
- 回答日時:
> VALUES('$id',$password,'$first_name','$last_name','$first_kana','$last_kana',$year,$month,$day,,$number,$height,$weight");
最後の3個、varchar なのにクォートで囲んでないからだと思いますよ。
あと、最後だけダブルクォートだったり、カンマが二つ並んでたり。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpでショッピングカート機能を...
-
VBA で、スペースを含むファイ...
-
PHPで入力フォームでデータを確...
-
Fortranでのファイル名操作につ...
-
if文のなかで
-
$a = ( $b == $c ) ? $d、 この...
-
phpのカウンタのリセット方法
-
PHPとHTML+Xamppの掲示板で画像...
-
PHPで画像の渡しが上手く行きま...
-
複数行のデータ一括更新に関して
-
POSTデータのNAME属性をVALUEに...
-
PHPでPCのローカル時刻は取得出...
-
POSTの値を配列として受け取っ...
-
IEで、フォームにたとえば
-
チェックボックスを用い、MySQL...
-
PHPでURLにジャンプするには?
-
フォームの途中で追加するには
-
POSTを使わずに値を渡す方法
-
フォームで作った送信ボタンが...
-
検索時の選択内容を保持する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
重複を防ぐ記述について教えて...
-
VBA で、スペースを含むファイ...
-
PHPで入力フォームでデータを確...
-
Flaskでサーバー立ち上げに関して
-
phpで変数を使ってcopyできない
-
ファイル名を変更してアップロ...
-
PHPからHTMLへの変数の受け...
-
$_SESSIONに渡した後はそのまま...
-
テキストボックスの値を取得したい
-
openCVのトラックバーについて
-
scanfでの読み込み文字数制限
-
アップロードファイル名の文字化け
-
PHP MySql 画像を取得
-
Fortranでのファイル名操作につ...
-
ポインタ配列をfscanfで読み込...
-
UPDATEできない
-
WordのIDataObject::GetData呼...
-
C# 同じ処理をまとめたい
-
POSTの項目に追加
-
イタリア人がCatherineと聞いた...
おすすめ情報