I SQL måste strängvärden citeras:
VALUES ('value1', 'value2')"
När du använder variabler:
VALUES ($var1, $var2)");
De citeras inte ... om inte citaten finns i själva värdena.
Så om $var1 = 'value1'; $var2 = 'value2'
sedan (efter att variablerna har interpolerats i din sträng) ser din SQL ut så här:
VALUES (value1, value2)"
Du kan lösa ditt omedelbara problem genom att lägga till citat:
VALUES ('$var1', '$var2')");
men detta åtgärdar inte din stora säkerhetssårbarhet och låter din data bryta frågan på olika sätt.
Du bör undvika att skapa SQL-satser genom att sammanställa strängar från variabler . Detta leder till SQL Injection-säkerhetshål. Använd ett gränssnitt som stöder bundna argument . De kommer att hantera offerter och flykt åt dig.