mysql_query Update mit Variable
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
antwort
befehl
benutzername
code
dank
eingabefeld
erstellen
http
index
kleiner hinweis
manual
schnelle antwort
set
spalte
statement
tabelle
thematik
update
url
zeichen
-
Hallo, ich bins mal wieder
Ich habe eine Frage zu PHP bzw.MySQL:
Ich möchte ein MySQL Update durchführen, bei dem der Spaltenname durch eine Variabel definiert wird. Also in etwa so:
$Update = mysql_query("UPDATE tabelle SET spalte = '$spalteninhalt' WHERE BenutzerID = '$BenutzerID'");
Nur soll der Spaltenname nicht "spalte"(wie oben im Beispiel) sondern $spalte sein, also eine Variabel.
Wie lässt sich das umsetzden? Danke im Vorraus für alle Antworten,
THWBM -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ganz gleich wie du das mit dem Spalteninhalt machst:
$update = mysql_query("UPDATE tabelle SET $spaltenname = '$spalteninhalt' WHERE BenutzerID = '$BenutzerID'");
Als kleiner Hinweis noch am Rande: du solltest die Variablen keinesfalls ungefiltert in die Query schicken. Schau dir zu dieser Thematik mysql_real_escape_string an, beziehungsweise verwende gleich MySQLi oder PDO.
mfg -
Hallo syberspace,
danke für deine schnelle Antwort,
1.Ich werde es mal so versuchen, wie du gesagt hast, aber
2.ich verstehe nicht so recht, was du mit den ungefilterten Variablen meinst. Heist dass, das Zeichen die nicht erlaubt sind in einer MySQL Tabelle rausgenommen werden?
-
thwbm schrieb:
Nein, das heißt, dass mit Zeichen die nicht erlaubt sind die Datenbank beliebig manipuliert werden kann, indem ein beliebiges SQL-Statement ausgeführt werden kann.
2.ich verstehe nicht so recht, was du mit den ungefilterten Variablen meinst. Heist dass, das Zeichen die nicht erlaubt sind in einer MySQL Tabelle rausgenommen werden?
Durch
wandert das alles in die Tabelle anstatt ausgeführt zu werden.mysql_real_escape_string()
-
Danke hackyourlife für die Antwort.
Verstehe ich das richtig? Wenn ich
weg lasse kann jeder über ein Eingabefeld (z.B. Benutzername oder Passwort) einen MySQL Befehl ausführen, also z.B. eine Tabelle löschen oder erstellen?mysql_real_escape_string()
-
thwbm schrieb:
Richtig. Der Angriffstyp nennt sich übrigens "SQL Injection".
Verstehe ich das richtig? Wenn ich
weg lasse kann jeder über ein Eingabefeld (z.B. Benutzername oder Passwort) einen MySQL Befehl ausführen, also z.B. eine Tabelle löschen oder erstellen?mysql_real_escape_string()
Lies dir dazu mal das durch um es auch richtig zu verstehen. -
Ah, ok. Dann muss ich mich darum auch nich kümmern. Danke!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage