我试图在表名,电子邮件和密码中插入三个值(我知道我没有这个哈希,我只是测试它以确定它是否先工作)。它告诉我列数不匹配,但列名和列数匹配,我不知道问题可能是什么。
这是MainActivity
Host github.com
IdentityFile ~/.ssh/path_to_key
IdentitiesOnly yes
答案 0 :(得分:2)
该行:
String query = "Insert INTO test1 (name,email,password) VALUES('" + name+email+password+"')";
实际应该是:
String query = "Insert INTO test1 (name,email,password) VALUES('" + name+"','"+email+"','"+password+"')";
当您实际想要插入三个单独的值时,您只插入了一个值,即name + email + password值的串联。
当您编写“插入INTO test1(名称,电子邮件,密码)”时,这意味着您要将3个值插入“test1”,“(名称,电子邮件,密码)指定的每个列都有一个值”。但是,因为您连接了名称+电子邮件+密码,所以您只插入一个值(连接的结果)而不是三个单独的值。打印出“查询”字符串,您将很快掌握其中的差异。
答案 1 :(得分:1)
您的查询会导致逗号错误(",")并且空格会尝试上面的代码
String query = "Insert INTO test1 (name,email,password) VALUES('"+name+","+email+","+password+"')";
Statement stmt = conn.createStatement();
stmt.executeUpdate(query);
msg = "Inserting Successful!!";
现在尝试使用预处理语句尝试上面的代码
String query= "Insert into table (name,email,password) Values(?,?,?)";
Statement st = conn.preparedStatement(query);
st.setString(1, name);
st.setString(2, email);
st.setString(3, password);