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

解決済みの質問

PHPでMySQLデータを更新するとエラー

PHPで作成したプログラムでMySQLにデータを登録しています。
新規にデータの追加はできるのですが、更新するとエラーになります。
スクリプトは
if (isset($_POST["submit_upd"])){
$no = key($_POST[submit_upd]);$name = htmlspecialchars($_POST["name"][$no], ENT_QUOTES);$division = htmlspecialchars($_POST["division"][$no], ENT_QUOTES);
$email = htmlspecialchars($_POST["email"][$no], ENT_QUOTES);
$tel = htmlspecialchars($_POST["tel"][$no], ENT_QUOTES);
$group = htmlspecialchars($_POST["group"][$no], ENT_QUOTES);

$sql = "UPDATE user SET name='$name',division='$division',email='$email',tel='$tel',group='$group' WHERE no=$no";
$mysql->query($sql);
$error = "{$no}番のデータを変更しました";

エラーは(例:4番のデータのグループを3番に変更)
1064: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 'group='3' WHERE no=4' at line 1
となっています。

以前同じプログラムで下記の質問をして、こちらは解決したのですが
結合していたり、whileループの設定などのせいでgroupの値を上手く得られないのか?と悩んでいます。
http://okwave.jp/qa3972723.html
クラスも上記に記載してあります。
まわりに聞ける人が全くおらず困っています。
どうかお力を貸していただければと思いますので
よろしくお願いします。

投稿日時 - 2008-05-07 16:28:46

QNo.4004454

すぐに回答ほしいです

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

GROUPはMysqlの予約語なのでカラム名やフィールド名に使用する事は好ましくありません。
他の名前に変えてやってみてください。

参考URL:http://dev.mysql.com/doc/refman/4.1/ja/reserved-words.html

投稿日時 - 2008-05-07 18:26:08

お礼

回答ありがとうございます。
名前を変更したらすぐに解決しました!
本当にありがとうございました!!

投稿日時 - 2008-05-08 15:32:24

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

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

回答(2)

ANo.1

エラーになるときの$sqlの内容は確認されていますか?また、その文字列をphpMyAdminなどで直接実行しても同じエラーになりますか?

「group='3' WHERE no=4」がsyntaxエラーということなのですが、これより前でおかしいのではないかと邪推するのですが・・。

あと、htmlspecialchars()を多用されているようですが、MySQLならmysql_real_escape_string()を通すべきじゃないですかねぇ・・。

投稿日時 - 2008-05-07 16:51:19

お礼

回答ありがとうございます。
今回はno.2さんの回答で解決しましたが
今後役立ちそうな知識をいろいろとありがとうございました!

投稿日時 - 2008-05-08 15:31:28

あなたにオススメの質問