Mysql
 sql >> Base de données >  >> RDS >> Mysql

Exception non interceptée 'PDOException' avec le message 'SQLSTATE[HY093] :Numéro de paramètre non valide'

Je pense que cela peut être dû au fait que vous avez décerné chaque liaison deux fois dans la déclaration, par exemple. :firstname apparaît dans les VALUES ainsi que la clause ON DUPLICATE KEY UPDATE clause.

Vous ne passez que 8 liaisons au $stmt->execute mais PDO en recherche 16.

Vous pouvez essayer de les nommer légèrement différemment dans le ON DUPLICATE KEY UPDATE clause vous donnant une requête telle que par exemple

INSERT INTO am_administrator (firstName,lastName,username,password,email,isSuperUser,dateCreated,dateLastModified) VALUES (:firstName,:lastName,:username,:password,:email,:isSuperUser,:dateCreated,:dateLastModified) ON DUPLICATE KEY UPDATE firstName = :update_firstName,lastName = :update_lastName,username = :update_username,password = :update_password,email = :update_email,isSuperUser = :update_isSuperUser,dateCreated = :update_dateCreated,dateLastModified = :update_dateLastModified;