Ich habe versucht, die folgende Abfrage, aber immer das gewünschte Ergebnis laufen:
mysqli_query($conn, "UPDATE 'member_db' SET 'Fine_Amt'=('Fine_Amt' +'$fine') WHERE 'Member_id' = '$mem_id'");
wo $ feine weitergeleitet wird in der URL von einer anderen Seite und $ mem_id ist der Primärschlüssel member_db.
Für die obige Abfrage wird der Wert im Feld ‚Fine_Amt‘ gespeichert zu werden, ist 0
Wenn ich jedoch mit einem konstanten Wert ‚$ fein‘ entfernen (etwa 100)
mysqli_query($conn, "UPDATE member_db SET 'Fine_Amt'=('Fine_Amt' + 100) WHERE 'Member_id' = '$mem_id'");
Der Abfrage funktioniert gut.
Sie wahrscheinlich eine SQL-Injection-Schwachstelle in diesem Code. – halfer
Was würden Sie vorschlagen? –
Sie müssen eine Technik namens _parameter binding_ verwenden. Suchen Sie danach, oder es gibt ein [Beispiel im Handbuch] (https://secure.php.net/manual/en/mysqli-stmt.bind-param.php). Wenn Sie derzeit Werte aus '$ _GET' oder' $ _POST' übernehmen, ohne sie zu bereinigen, können Sie einem Angreifer erlauben, eigene SQL-Anweisungen in Ihrer Datenbank auszuführen, was Ihre Sicherheit oder die Privatsphäre Ihrer Benutzer gefährdet. – halfer