Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exceção não capturada 'PDOException' com a mensagem 'SQLSTATE[HY093]:Número de parâmetro inválido'


Eu acho que isso pode ser porque você descartou cada ligação duas vezes na instrução, por exemplo. :firstname aparece em VALUES cláusula, bem como a ON DUPLICATE KEY UPDATE cláusula.

Você só passa 8 ligações para o $stmt->execute mas a PDO procura 16.

Você pode tentar nomeá-los um pouco diferente no ON DUPLICATE KEY UPDATE cláusula que fornece uma consulta como, por exemplo,

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;