我尝试将以下数据插入数据库。但它给了我以上 这个错误。 你的SQL语法有错误;检查对应的手册 您的MariaDB服务器版本正确的语法使用附近' '在第1行。
我尝试了几件事,但没有修复。
try{
Statement stat = Database.getStatement();
stat.executeUpdate("INSERT INTO"+" admission"+
" (a_id,sickness,recPhysicianDetails,
admittedDate,Patient_ID,Doctor_id,Doctor_id1)"+"
VALUES
('"+txt1.getText()+"',
'"+txt7.getText()+"','"+txt8.getText()+"', '"+txt6.getText()+"',
( SELECT ID FROM patient WHERE Patient_name='"+txt3.getText()+"' ),
( SELECT ID FROM employee WHERE Name='"+txt9.getText()+"' ),
( SELECT ID FROM employee WHERE Name='"+txt10.getText()+"')" );
}
catch(Exception e){
e.printStackTrace();
}
答案 0 :(得分:1)
在您的解决方案中,引号(_
)未正确放置,并且最后还有一个缺少的结束括号。使用'
会确保您不必担心引号,请尝试以下操作:
PreparedStatement
答案 1 :(得分:0)
我建议使用预准备语句,而不是直接调用文本框中的值。
try{
Statement stat = Database.getStatement();
stat.executeUpdate("INSERT INTO admission"+
"(a_id,sickness,recPhysicianDetails,admittedDate,Patient_ID,Doctor_id,Doctor_id1)"+
" VALUES('"+txt1.getText()+"','"+txt7.getText()+"','"+txt8.getText()+"','"+txt6.getText()+"',"+
"(SELECT ID FROM patient WHERE Patient_name='"+txt3.getText()+"'),"+
"(SELECT ID FROM employee WHERE Name='"+txt9.getText()+"'),"+
"(SELECT ID FROM employee WHERE Name='"+txt10.getText()+"')");
}
catch(Exception e){
e.printStackTrace();
}
你这里在错误的地方插入了一些双引号,请检查一下,它应该有用。