问题是,有没有一种方法可以从文本字段中创建一个由用户命名的新表。我知道它是一个巨大的注入(inject)端口,但我真的需要新表,它只能离线工作。我试过了
String newtable = jTextField1.getText();
PreparedStatement create = conn.prepareStatement("CREATE TABLE IF NOT EXISTS '"+newtable+"'(ID INTEGER NOT NULL AUTO_INCREMENT, IDapol INTEGER, ΗΜΕΡΟΜΗΝΙΑ DATE, ΕΣΟΔΑ DOUBLE, PRIMARY KEY(ID), CONSTRAINT IDapol FOREIGN KEY(IDapol) REFERENCES apol(IDapol)");
但我收到一条错误消息:您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以了解在“1718”附近使用的正确语法(ID INTEGER NOT NULL AUTO_INCREMENT, IDapol, INTEGER, ΗΜΕΡΟΜΗΝΙΑ' 在第 1 行
1718 是我的 textField1 的值。 我可以使用任何帮助吗?谢谢
最佳答案
根据此处:https://dev.mysql.com/doc/refman/5.7/en/identifiers.html , "标识符可以以数字开头,但除非被引用否则不能仅由数字组成。"
此外,目前您的代码对于 SQL 注入(inject)攻击是完全开放的。
关于java - 用用户命名的java在mysql中创建一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44113295/