sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

PHP Indsæt i MySQL-syntaksfejl

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.



  1. Find tidsforskellen mellem to på hinanden følgende rækker i samme tabel i sql

  2. Hvor kan jeg kontrollere brugerdefineret tabeltype i SQL Server 2008 i SSMS? og hvordan kan jeg indsætte en ny kolonne i den?

  3. Hvorfor slettes aliasnavne, der er de samme som kolonnenavne, når de gemmes som en visning?

  4. Mindre udgivelse 5.3.3