我正在尝试使用java将这些数据插入到mysql中,它说sql语法有问题,但我无法弄明白。任何帮助都会很棒。
stmt = conn.createStatement();
String sql;
String fname = "Kyle";
String lname = "Longrich";
String insert = "INSERT INTO 'hospital', 'test' ('Firstname', 'Lastname') VALUES ('" + fname + "' , '" + lname + "')";
stmt.executeUpdate(insert);
答案 0 :(得分:1)
快速浏览一下,我发现了一些错误:
请改为尝试:
String insert = "INSERT INTO hospital.test (Firstname, Lastname) VALUES ('" + fname + "' , '" + lname + "')";
或者如果您需要指定带有反向标记的标识符(实际上这绝不是一个坏主意):
String insert = "INSERT INTO `hospital`.`test` (`Firstname`, `Lastname`) VALUES ('" + fname + "' , '" + lname + "')";
此外,您可能希望查看使用预准备语句的查询参数。在这种特殊情况下,您所拥有的不是SQL注入漏洞,因为您仍在使用硬编码的文字值,但是这种用于构建SQL查询的字符串连接样式可能会导致SQL注入漏洞,当您不再控制正在使用的价值。
答案 1 :(得分:0)
如果要将相同的数据插入两个不同的表,则必须执行两个不同的语句。
INSERT INTO hospital ('Firstname', 'Lastname') VALUES (..)
和
INSERT INTO test ('Firstname', 'Lastname') VALUES (..)
您无法将两个语句合并在一起。除此之外,SQL看起来有效。