你的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,以获得正确的语法,以便在附近使用#39; '在第1行

时间:2017-04-29 12:52:20

标签: java mysql mariadb

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

2 个答案:

答案 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();
    }

你这里在错误的地方插入了一些双引号,请检查一下,它应该有用。