TableNames
são identificadores, portanto, não devem ser citados com aspas simples. Como o tableName que você usou não é uma palavra-chave reservada, você pode simplesmente remover essas aspas, INSERT INTO student (FirstName, LastName....
Quando você envolve algo com aspas simples, isso força esse objeto a se tornar um literal de string. Portanto, quando os identificadores são agrupados com aspas simples, isso significa que eles não são mais identificadores.
O servidor lança uma exceção porque
INSERT INTO
espera um identificador e não um literal de string. Quando você acidentalmente usou um nome de tabela que é um MySQL reservado Palavra-chave , não use aspas simples para delimitar o identificador, mas com
backticks
. Como nota lateral, a consulta é vulnerável com
SQL Injection
se o valor(s ) das variáveis veio de fora. Por favor, dê uma olhada no artigo abaixo para saber como evitar isso. Usando PreparedStatements
você pode se livrar de usar aspas simples em torno de valores.