Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

データ編集

DBに登録されているデータを編集する時に、サーブレット側で受け
取ったデータでUPDATE命令しているのですが、プログラム記述を変え
ても毎回、コンソールに同じエラーが表示されます。

objPs=db.prepareStatement("UPDATE USER SET 
name=?,sex=?,address=?,email=?,old=?,introduction=?,post=?,W
HERE USER loginid=?");
・・・
【エラー表記】
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 'WHERE USER loginid='yoshi2458'' at line 1

サーブレットを使用せずJSPのみでSQL文を記述しても同様のエラーが
表示されてしまいます。

問題点ありましたら宜しくおねがいします。

6

回答

81153

閲覧

6件の回答

評価

0

WHERE USER loginid='yoshi2458'は文法エラーです。
もっとSQLを勉強しましょう。

評価

0

>>hoge ぽんさん

where login =?の間違えでした。しかし記述を変更しても以下同様の
エラーが出てしまいます。何故でしょうか??

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 'WHERE loginid='yoshi2458'' at line 1

評価

0

これ以上はSQLの質問になってしまいそうですが、
ぱっと見、WHEREの前にカンマがあるのが気になります。
多分これを消したら動くはずです。

それでも動かない場合は発行されているSQLを確認してみてください。

あと、エラーをきちんと読みましょう。
>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 'WHERE loginid='yoshi2458'' at line 1
WHERE〜の近くで構文エラーがある、という雰囲気は辞書を引けば簡単にわかるはずですよ。

評価

0

hogeぽんさん>>

有り難うございます。無事解決しました。やはりカンマが・・・
SQLの部分は解決したのですが、他のエラーが出現してしまいまして、格
闘中です。
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too 
long for column 'name' at row 1

本当に有り難うございます。Javaサーブレットは難しくて。。。

評価

0

それもSQLのエラーですよ。
普通にエラーメッセージを読むと、カラム「name」が許す文字列の長さより登録しようとした文字列の長さのほうが大きい、ということです。

ただ、このエラーについては以前遭遇したことがありまして、一概に原因が上記であるとは言えません。

私が遭遇した際は
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=29987&forum=12
を参考にしました。

評価

0

サーブレットがどうとかいう以前に、せめてエラーメッセージをそのまま検索してみましょう。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。