- ベストアンサー
MySQLとJavaでのコードについて。
JavaBeanを使って、MySQLにデータを追加したいのですが、それがなかなかうまくいかず質問してます。 Statement statement = connection.createStatement(); String sql_str ="INSERT INTO customer VALUES(\"" +name+"','"+email+"','"+password+"\")"; int r=statement.executeUpdate(sql_str); このコードはjavaBeanのなかに入っており、name,email,passwordはjspからjavabeanに送られてきます。多分、VALUESの後のname,emai,passwordを入れるのに”’などの使い方が間違ってると思います。本には載ってなかったので、ウェッブ検索してみよう見真似でやったので、”’の使い方を把握してません。誰か分かる方回答お願いします。 あとこれとは違うmethodにSELECT文を使った時、 String sql_str = "SELECT email, password FROM customer where email='"+email+"'AND password='"+password+"'"; ResultSet rs = stmt.executeQuery(sql_str);とやったときは動きました。最初はこれと同じようにINSERT 文も書いたのですが、動かなかったんですよね。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは~(^^♪ String sql_str ="INSERT INTO customer VALUES(\"" +name+"','"+email+"','"+password+"\")"; はちょっと違ってますね。 String sql_str ="INSERT INTO customer VALUES('"+name+"','"+email+"','"+password+"')"; となります。\"してしまうと\"~\"が文字列となってしまうのでおかしくなってしまいます。 また、name,email,passwordがString型なら''で囲みますが→'name' int型など数値の場合は''はいらなくなります。→name わからないことがありましたらまたどうぞ(^o^)丿
その他の回答 (1)
- OkinawaDream
- ベストアンサー率54% (6/11)
javaで¥はエスケープ文字として認識され、\"はダブルクォーテーションを表現します。 ですので、SQLは "INSERT INTO customer VALUES('"+name+"','"+email+"','"+password+"')"; とすれば良いと思います。
お礼
早速のお答えありがとうございます。おかげで動きました。どうもどうも。
お礼
その通りにやったら動きました。なかなかこういうような解説がのってなくて困ってました。有難うございます。