これは、ステートメントで各バインディングを2回デケアしたことが原因である可能性があります。 :firstname
VALUES
に表示されます 句とON DUPLICATE KEY UPDATE
条項。
$stmt->execute
に渡すバインディングは8つだけです。 しかし、PDOは16を探しています。
ON DUPLICATE KEY UPDATE
で少し異なる名前を付けてみてください 例:
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;