gpt4 book ai didi

java - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行 ' ' 附近使用的正确语法

转载 作者:行者123 更新时间:2023-11-29 10:51:13 24 4
gpt4 key购买 nike

我尝试将以下数据插入数据库。但它给了我上面的内容这个错误。您的 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();
}

最佳答案

在您的解决方案中,引号 (') 的位置不正确,而且末尾缺少右括号。使用 PreparedStatement 将确保您无需担心引号,请尝试以下操作:

Connection conn = //get connection
PreparedStatement stat = conn.prepareStatement("INSERT INTO admission (a_id,sickness,recPhysicianDetails,admittedDate,Patient_ID,Doctor_id,Doctor_id1)"
+" VALUES(?, ?, ?, ?, (SELECT ID FROM patient WHERE Patient_name = ?),(SELECT ID FROM employee WHERE Name = ?),(SELECT ID FROM employee WHERE Name = ?))");
stat.setString(1, txt1.getText());
stat.setString(2, txt7.getText());
stat.setString(3, txt8.getText());
stat.setString(4, txt6.getText());
stat.setString(5, txt3.getText());
stat.setString(6, txt9.getText());
stat.setString(7, txt10.getText());
stat.executeUpdate();

关于java - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行 ' ' 附近使用的正确语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43695933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com