Ankündigung

Einklappen
Keine Ankündigung bisher.

repared statement update

Einklappen

Neue Werbung 2019

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

  • repared statement update

    hallo, das erste beispiel klapp ohne probleme!

    hier der code :

    Code:
      $database = new Connection();
        $db = $database->open(); 
            $email = $_GET['email'];
          $activationcode = $_GET['activationcode'];
      
          $sql = "SELECT ACTIVATIONCODE FROM tbl_user WHERE email = ? AND activationcode = ?";
          $stmt = $db->prepare($sql);
          $stmt->execute([$email, $activationcode]);
          $data = $stmt->fetch();
              if($data == NULL) {
              $output['error'] = true;
              $output['message'] = 'Fehler: Aktivierungscode ist abgelaufen!';
            }
            else {
      
              $sql = "UPDATE tbl_user SET ACTIVATIONCODE = NULL WHERE email = ? AND activationcode = ?";
              $stmt = $db->prepare($sql);
              $stmt->execute([$email, $activationcode]);
              $stmt->execute();
                $output['error'] = false;
              $output['message'] = 'Aktivierung wurde erfolgreich abgeschlossen! ';
            }
    hier das zweit beispiel! der code ist identisch, möchte jetzt aber zwei werte ändern!
    PHP-Code:
      $sql "UPDATE tbl_user SET ACTIVATIONCODE = NULL, RELEASE = 1 WHERE email = ? AND activationcode = ?"
    Fehlermeldung :
    Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'RELEASE = '1' WHERE email = 'hgjghjjghjhgjfgjgqgnkgjklndfjj@klffkd.de' AND ac...' at line 1 in /volume1/web/webportal/active/verifizierung_email.php on line 37 PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'RELEASE = '1' WHERE email = 'hgjghjjghjhgjfgjgqgnkgjklndfjj@klffkd.de' AND ac...' at line 1 in /volume1/web/webportal/active/verifizierung_email.php on line 37 Call Stack: 0.0005 364800 1. {main}() /volume1/web/webportal/active/verifizierung_email.php:0 0.0044 419064 2. PDOStatement->execute() /volume1/web/webportal/active/verifizierung_email.php:37

  • #2
    RELEASE ist ein reserviertes Schlüsselwort und muss in `Backticks` geschrieben werden. Um solche Probleme generell zu vermeiden, kann es sinnvoll sein Spalten- und Tabellennamen immer in `Backticks` zu schreiben.

    Kommentar


    • #3
      ja, super danke für die hilfe! jetzt geht es!

      Kommentar

      Lädt...
      X