Ankündigung

Einklappen
Keine Ankündigung bisher.

SQLSTATE[HY093]: Invalid parameter number

Einklappen

Neue Werbung 2019

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

  • SQLSTATE[HY093]: Invalid parameter number

    Hallo zusammen,

    beim Aufruf folgender Funktion erhalte ich immer den "Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined on line 8"-Fehler.
    Die Meldung sagt ja eigentlich alles, aber ich weiß einfach nicht, woher diese ungültige Anzahl von Parametern herkommen soll....


    PHP-Code:
    public function updateUser($id$vorname$nachname$email$admin){
            
    $sql 'UPDATE user '
                    
    'SET vorname = :vorname, nachname = :nachname, email = :email, admin = :admin'
                        
    'WHERE user_id = :id';   
                        
            
    $sth $this->pdo->prepare ($sql);
        
            
    $sth->execute(array(':vorname'=>$vorname,':nachname'=>$nachname,':email'=>$email,':admin'=>$admin,':id'=>$id));
        } 
    Danke schonmal!

  • #2
    Du hast keinen Abstand zwischen :admin und WHERE, also im Code steht :adminWHERE. Wenn du den SQL-Code anders formatierst, besteht die Gefahr erst gar nicht:
    PHP-Code:
    $sql "
        UPDATE user
        SET vorname = :vorname, nachname = :nachname, email = :email, admin = :admin
        WHERE user_id = :id
    "

    Kommentar


    • #3
      Oh mein Gott wer kommt denn auch auf sowas
      Danke, das wars!

      Kommentar


      • #4
        Dir fehlt ein Leerzeichen vor dem WHERE. ( Zu spät! )

        Dennoch:
        Für SQL-Queries bietet sich imho Herdoc oder Nowdoc an und an Backticks denken:
        PHP-Code:
        $sql =<<<EOSQL
        UPDATE `users`
        SET  `vorname` = :vorname, `nachname` = :nachname, `email` = :email, `admin` = :admin
        WHERE `user_id` = :id
        EOSQL; 

        Kommentar


        • #5
          Zitat von Arne Drews Beitrag anzeigen
          ... und an Backticks denken:
          Ev. hat er einen SQL-Server



          Zitat von Manu1038 Beitrag anzeigen
          Oh mein Gott wer kommt denn auch auf sowas
          Danke, das wars!
          Siehe ev. auch - für die Zukunft: http://php-de.github.io/jumpto/sql/#...ive-massnahmen

          Kommentar

          Lädt...
          X