TableNames
är identifierare så de bör inte citeras med enstaka citattecken. Eftersom tabellnamnet du har använt inte är ett reserverat nyckelord, kan du helt enkelt ta bort dessa citattecken,
INSERT INTO student (FirstName, LastName....
När du slår in något med enstaka citattecken, tvingar det objektet att bli en bokstavlig sträng. Så när identifierare lindas med enstaka citattecken betyder det att de inte längre är identifierare.
Servern skapar ett undantag eftersom INSERT INTO
förväntar sig en identifierare som inte är bokstavlig.
När du av misstag har använt ett tabellnamn som är en MySQL Reserved Sökord
, använd inte enstaka citattecken för att avgränsa identifieraren utan med backticks
.
Som en sidanot är frågan sårbar med SQL Injection
om värdet (s ) av variablerna kom utifrån. Ta en titt på artikeln nedan för att lära dig hur du förhindrar det. Genom att använda PreparedStatements
du kan bli av med att använda enstaka citattecken runt värden.