2016-03-24 23 views
-2

Aşağıdaki kod java.sql.SQLException olduğunu gösteriyor. Herkes bujava.sql.SQLException: ORA-00911: geçersiz karakter

Class.forName("oracle.jdbc.driver.OracleDriver"); 

String lname=request.getParameter("lastname"); 
String uname=request.getParameter("username"); 
String fname=request.getParameter("firstname"); 
String cemail=request.getParameter("email"); 
String pswd=request.getParameter("password"); 
String cpswd=request.getParameter("conformpassword"); 
String sex=request.getParameter("gender"); 
long phon=Long.parseLong(request.getParameter("mobile")); 

Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "system", "admin"); 
Statement st = con.createStatement(); 
ResultSet rs = st.executeQuery("insert into users values('" + uname + "','" + fname + "','" + lname + "','" + cpswd + "',"+ phon + ",'" + cemail + "','" + sex + "');"); 
+0

Geçirilmekte olan değişkenlerin değerleri nelerdir? – Ocracoke

+2

İstisnanın ne olduğunu tahmin etmemiz gerekiyor mu? Ayrıca, kod size sql enjeksiyonu için savunmasızdır. –

+0

ORA-00911, ifadenin sonunda bulunmayan noktalı virgülden gelir. Ama hazırlanmış bir deyim kullanmalı ve değişkenleri bağlamanız gerekir. –

cevap

0

sabitleme yerine de bana yardımcı olabilir:

PreparedStatement st = con.prepareeStatement("insert into users values(?,?,?,?,?,?,?);"); 
st.setString(1, uname); 
st.setString(2, fname); 
st.setString(3, lname); 
st.setString(4, cpswd); 
st.setLong(5, phon); 
st.setString(6, cemail); 
st.setString(7, sex); 
ResultSet rs = st.executeQuery(); 

Senin sorunun sorunuza tarafından belirgin değildir, ancak kullanarak:

Statement st = con.createStatement(); 
ResultSet rs = st.executeQuery("insert into users values('" + uname + "','" + fname + "','" + lname + "','" + cpswd + "',"+ phon + ",'" + cemail + "','" + sex + "')"); 

yaptığım öneririz ediyorum şu PreparedStatement, karşılaşacağınız gelecekteki sorunları önleyecektir. Umarım bu yardımcı olur.

+0

SQL deyiminin sonunda noktalı virgülden kurtulmanız gerekiyor. –

İlgili konular