Java I';我在netbeans中遇到42000 sql语法错误,但相同的查询字符串在mysql控制台中运行良好
好的……这是我的代码,我不知道我哪里出错了……我在netbeans中遇到了42000个错误,我知道这是一个sql语法错误,但它在mysql控制台中工作得非常好Java I';我在netbeans中遇到42000 sql语法错误,但相同的查询字符串在mysql控制台中运行良好,java,mysql,Java,Mysql,好的……这是我的代码,我不知道我哪里出错了……我在netbeans中遇到了42000个错误,我知道这是一个sql语法错误,但它在mysql控制台中工作得非常好 try { Class.forName("com.mysql.jdbc.Driver"); Connection CC = DriverManager.getConnection("jdbc:mysql://localhost:3306/pulsedb"
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection CC =
DriverManager.getConnection("jdbc:mysql://localhost:3306/pulsedb", "root", "carrizo");
String q1 = String.valueOf(jComboBox1.getSelectedItem());
String ans1 = jTextField9.getText();
String q2 = String.valueOf(jComboBox2.getSelectedItem());
String ans2 = jTextField10.getText();
String recovQA = "INSERT INTO pulsedb.mstuffrecovery (recov_qsn,recov_ans) VALUES('"+q1+"',"+ans1+"')";
String recovQA2 = "INSERT INTO pulsedb.mstuffrecovery2 (recov_qsn2,recov_ans2) VALUES('"+q2+"',"+ans2+"')";
PreparedStatement PQS = CC.prepareStatement(recovQA);
PreparedStatement PQQ = CC.prepareStatement(recovQA2);
PQS.executeUpdate(recovQA);
PQQ.executeUpdate(recovQA2);
catch(SQLException e)
{
System.out.println(e.getSQLState());
e.getMessage();
e.getErrorCode();
e.printStackTrace();
}
1) 我非常怀疑同一个查询在SQL控制台中是否有效,因为您缺少(至少)一个引号,并且它会通过一个错误来完成。如果您错过了它,这意味着您在控制台和代码中运行的查询与以前的查询不同……2) 在向SQL传递值时应始终使用参数当您去看医生时,是否告诉他们您有什么问题?还是让他们猜?在ans1和ans2之前,你错过了一个。你在第一季度和第二季度做得很好。在这一点上+感谢Sotirios成为我今天的笑料。你的代码对SQL注入非常开放。@TheOneWhoPrograms…非常感谢…有点愚蠢,但有时很难发现!我是分开打字的,这可能就是为什么我错过了那句话,但现在效果很好。谢谢。关于第2点)你能给我一个示例代码吗…我不太擅长编程,但是你的SQL将
插入到tableName(fld1,fld2…)值(?,…)