Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Einfügen von $Variablen oder $_POST-Werten in die MySQL-Tabelle

In SQL müssen String-Werte in Anführungszeichen gesetzt werden:

VALUES ('value1', 'value2')"

Wenn Sie Variablen verwenden:

VALUES ($var1, $var2)");

Sie werden nicht in Anführungszeichen gesetzt … es sei denn, die Anführungszeichen befinden sich in den Werten selbst.

Wenn also $var1 = 'value1'; $var2 = 'value2' dann (nachdem die Variablen in Ihren String interpoliert wurden) sieht Ihr SQL so aus:

VALUES (value1, value2)"

Sie könnten Ihr unmittelbares Problem lösen, indem Sie Anführungszeichen hinzufügen:

VALUES ('$var1', '$var2')");

aber dies behebt nicht Ihre große Sicherheitslücke und lässt Ihre Daten die Abfrage auf unterschiedliche Weise unterbrechen.

Sie sollten es vermeiden, SQL-Anweisungen zu erstellen, indem Sie Strings aus Variablen zusammensetzen . Dieser Weg führt zu SQL-Injection-Sicherheitslücken. Verwenden Sie eine Schnittstelle, die gebundene Argumente unterstützt . Sie übernehmen das Zitieren und Escape für Sie.