Frage von YoloCheater, 50

Hilfe zu SQL?

Kann mir jemand helfen?

bei dem Befehl

$sqlab = "delete from Mitglieder where Nickname = " . $_POST["auswahl"];

löscht er in der Datenbank garnichts.

Der Befehl der hierbei übermittelt wird ist:

delete from Mitglieder where Nickname = test2

Wenn ich jedoch

$sqlab = "delete from Mitglieder";

Dann löscht er die ganze Tabelle. warum kann ich dann nicht auch einzelne Teile löschen?

schon mal danke ;)

Antwort
von ChillerT, 40

Versuche mal:

$sqlab = "DELETE FROM Mitglieder WHERE Nickname = '".$POST_["auswahl"]."'";

Zudem überprüfe bitte die Groß- und Kleinschreibung deines Feldes "Nickname".

Liebe Grüße



Kommentar von Kiboman ,

dein code ist unsicher!

da ist es kinder leicht Schad code einzuschleusen.

stichwort: sql injection

Kommentar von ChillerT ,

Darauf hätte ich als nächstes hingewiesen, wichtig war mir ersteinmal zu schauen, ob der Code funktioniert und wenn nicht woran das liegen könnte.

Ich kenne seine SQL Version nicht und auch nicht seinen Connection aufbau, weshalb da zusätzliche Variabel-Namen bei der Fehlersuche nur hinderlich gewesen wären.

Aber um das zu vervollständigen hier für den Fragesteller der wichtige Link:
MySQLi: http://php.net/manual/de/mysqli.real-escape-string.php
MySQL: http://php.net/manual/de/function.mysql-real-escape-string.php
Kommentar von Kiboman ,

:))

mysql ist veraltet

benutze mysqli oder PDO

und:

grundsatz: vertraue niemals daten die von aussen kommen

Kommentar von PWolff ,

Weiterer Hinweis: bitte gewöhnt euch von Anfang an daran, so ein eklatantes Einfallstor für SQL-Injection zu vermeiden.

Sonst kommt noch jemand auf die Idee, "Bobby Tables" bearbeiten zu wollen ... (https://xkcd.com/327/)

Edit: Man sollte nicht zu lang warten mit dem Posten, sonst sind andere schneller. Aber den berüchtigten Bobby Tables lass ich drin.

Antwort
von Kiboman, 22

siehe chillerT und

den code sicher machen!

stichwort: sql injection

Antwort
von AppleTea, 41

Weil du die komplette auswahl rausnimmst?

Keine passende Antwort gefunden?

Fragen Sie die Community