问题是,有没有一种方法可以创建一个用户从文本字段中命名的新表。我知道它有一个巨大的注入端口,但是我确实需要新表,它只能在离线状态下工作。我试过了
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行
我的textField1的值是1718。
我可以使用任何帮助吗?谢谢
最佳答案
按照此处的说明:https://dev.mysql.com/doc/refman/5.7/en/identifiers.html,“标识符可以以数字开头,但除非引用,否则标识符不能仅由数字组成。”
另外,当前您的代码对SQL注入攻击非常开放。