
以前もご質問させていただいたのですが、調べてもわからず困り果てています。
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で質問しましょう!
関連するQ&A
- 1 PHPでMySQLに登録されているデータのMAXと他のフィールドからデータの取得
- 2 PHPとMySQLで100万件のデータを登録
- 3 php mysql データ登録
- 4 MySQLに登録したデータをPHPで出力したい。
- 5 MySQLの日付データとPHPの日付データの比較
- 6 MYSQL、PHPを使ってのデータとそのデータ数表示について
- 7 PHPでMySQLデータを呼び出し、whileループの中で別テーブルのデータをループするには
- 8 PHPでHTMLを分解してMySQLに登録
- 9 PHP+MySQL利用でDB登録に不具合が出てしまいます・・・
- 10 PHP でMysqlを使用して日本語を登録する。
関連するカテゴリからQ&Aを探す
おすすめ情報
人気Q&Aランキング
-
4
ブラウザの戻るボタンで重複登...
-
5
会員登録したらメールが送られ...
-
6
PHP(PDO)でDBの情報を完全一...
-
7
PHP ボタンが押されたら処理を...
-
8
Tera Term の使い方について
-
9
別PHPファイルに変数を渡す
-
10
IE11でページ遷移時にセッショ...
-
11
ボタンをクリックでPHP文を実行
-
12
小数点以下0の非表示
-
13
ログイン画面をはさんだ後、自...
-
14
ASP.NETでログイン認証をしない...
-
15
ブラウザを終了するとCookie情...
-
16
PHP cookieの値が更新されない...
-
17
ログイン画面から入って、「戻...
-
18
PHPで新しいウインドウで開く命...
-
19
ウェブサイト上のボタンを自動...
-
20
フォームでのリセットを使う方法