I SQL skal strengværdier anføres:
VALUES ('value1', 'value2')"
Når du bruger variabler:
VALUES ($var1, $var2)");
De er ikke citeret … medmindre citaterne er i selve værdierne.
Så hvis $var1 = 'value1'; $var2 = 'value2'
derefter (efter at variablerne er interpoleret i din streng) ser din SQL således ud:
VALUES (value1, value2)"
Du kan løse dit umiddelbare problem ved at tilføje citater:
VALUES ('$var1', '$var2')");
men dette løser ikke din større sikkerhedssårbarhed og lader dine data bryde forespørgslen på forskellige måder.
Du bør undgå at oprette SQL-sætninger ved at samle strenge fra variabler . Denne måde fører til SQL Injection-sikkerhedshuller. Brug en grænseflade, der understøtter bundne argumenter . De vil håndtere citering og undslippe for dig.