kostenloser Webspace werbefrei: lima-city


mysql_query Update mit Variable

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    thwbm

    thwbm hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    thwbm

    thwbm hat kostenlosen Webspace.

    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?
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    thwbm schrieb:
    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?
    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.

    Durch
    mysql_real_escape_string()
    wandert das alles in die Tabelle anstatt ausgeführt zu werden.
  6. Autor dieses Themas

    thwbm

    thwbm hat kostenlosen Webspace.

    Danke hackyourlife für die Antwort.
    Verstehe ich das richtig? Wenn ich
    mysql_real_escape_string()
    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?
  7. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    thwbm schrieb:
    Verstehe ich das richtig? Wenn ich
    mysql_real_escape_string()
    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?
    Richtig. Der Angriffstyp nennt sich übrigens "SQL Injection".

    Lies dir dazu mal das durch um es auch richtig zu verstehen.
  8. Autor dieses Themas

    thwbm

    thwbm hat kostenlosen Webspace.

    Ah, ok. Dann muss ich mich darum auch nich kümmern. Danke!
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!