TableNames
er identifikatorer, så de bør ikke citeres med enkelte anførselstegn. Da det tabelnavn, du har brugt, ikke er et reserveret søgeord, kan du blot fjerne disse omsluttende anførselstegn,
INSERT INTO student (FirstName, LastName....
Når du pakker noget ind med enkelte anførselstegn, tvinger det objektet til at blive en bogstavelig streng. Så når identifikatorer ombrydes med enkelte anførselstegn, betyder det, at de ikke længere er identifikatorer.
Serveren kaster en undtagelse, fordi INSERT INTO
forventer en identifikator, der ikke er streng bogstavelig.
Når du ved et uheld har brugt et tabelnavn, som er en MySQL Reserved Søgeord
, brug ikke enkelt anførselstegn til at afgrænse identifikatoren, men med backticks
.
Som en sidenote er forespørgslen sårbar med SQL Injection
hvis værdien (s ) af variablerne kom udefra. Tag et kig på artiklen nedenfor for at lære, hvordan du forhindrer det. Ved at bruge PreparedStatements
du kan slippe for at bruge enkelte anførselstegn omkring værdier.