Ankündigung

Einklappen
Keine Ankündigung bisher.

Variable über MySQL übermitteln

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variable über MySQL übermitteln

    Hallo!

    Habe mal eine kleine Frage an euch, vielleict könnt ihr mir dabei helfen?
    In einem Input-Feld wird ein Aktivierungscode gespeichert (bspw. 123456).

    Jetzt habe ich folgende MySQL-Anweisung erstellt:

    PHP-Code:
    $Aktivierungscode $_POST["Aktivierungscode"];

    $eintrag "UPDATE benutzer 
    SET  Aktivierung_done = 'Ja' 
    WHERE Aktivierungscode= '123456'"
    ;

    $eintragung mysql_query($eintrag); 
    Ich möchte, dass bei dem Datensatz bei dem der Aktivierungscode
    "123456"
    lautet, der Wert im Feld "Aktivierung_done" auf "Ja" gesetzt wird.

    Gebe ich es so ein:

    PHP-Code:
    $eintrag "UPDATE benutzer 
    SET  Aktivierung_done = 'Ja' 
    WHERE Aktivierungscode= '123456'"
    ;

    $eintragung mysql_query($eintrag); 
    macht er das ohne Probleme, für die angegebe ID.
    Nun habe ich aber mehrere Datensätze mit unterschidlichen
    ID´s. Da stellt sich mir die Frage, wie übermittle ich den
    Inhalt der Variable $Aktivierungscode?

    Kann mir dies einer verraten?

    Gruß, David


  • #2
    PHP-Code:
    // Generell:
    $sql "UPDATE `benutzer`  SET  `Aktivierung_done` = 'Ja'  WHERE `Aktivierungscode`='" $authCodeViaPost "'";

    // mit PDO:
    $pdoStatement $pdoObj->prepare"UPDATE `benutzer`  SET  `Aktivierung_done` = 'Ja'  WHERE `Aktivierungscode`=?" );
    $pdoStatement->bindParam1$authCodeViaPostPDO::PARAM_STR );
    $pdoStatement->execute(); 
    $authCodeViaPost sollte den gefilterten Wert enthalten!

    Allerdings bewegen wir uns hier im Kern des Themas: http://www.php.de/php-einsteiger/489...rundlagen.html

    Du solltest Deine Datenbank nochmal überdenken.
    Aktivierungscode und die Feststellung, ob aktiviert wurde, würde ich bspw. nicht als eine Spalte behandeln!

    Aber das änderst Du sicher später, richtig?
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Vielen Dank für deine Hilfe...
      Werde ich gleich mal umsetzen...

      Wollte es jetzt nur schnell fertig machen,
      später dann komplett in/mit PDO umsetzen.

      Habe ja jetzt eine Spalte Aktivierungscode
      und eine Spalte Aktivierung_done,
      somit habe ich die Sachen doch getrennt.
      O. wie meinst du das mit einer Spalte?

      Kommentar


      • #4
        Habe ja jetzt eine Spalte Aktivierungscode und eine Spalte Aktivierung_done
        Stimmt, hatte ich falsch gelesen. Warum eine Ja/Nein-Spalte anstatt einer BOOL bzw. TINYINT?
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Die original mysql-Erweiterung ist veraltet (mysql_*-Funktionen) und wird in den kommenden Versionen aus PHP entfernt. Aktuell wirft sie schon E_DEPRECATED-Fehler bei einer Verbindung zur Datenbank. Des Weiteren stehen dir sehr viele tolle Features von mysql mit diesen Funktionen nicht zur Verfügung! Weiterführende Links:
          Choosing an API
          Warum man mysql* generell nicht (mehr) nutzen sollte.
          Wie man von mysql* auf PDO umsteigt
          Wissenswertes zum Thema SQL-Injection
          Standards - Best Practices - AwesomePHP - Guideline für WebApps

          Kommentar

          Lädt...
          X