Saya pikir ini mungkin karena Anda telah menghapus setiap pengikatan dua kali dalam pernyataan, mis. :namadepan muncul di VALUES klausa serta ON DUPLICATE KEY UPDATE klausa.
Anda hanya meneruskan 8 binding ke $stmt->execute tapi PDO mencari 16.
Anda dapat mencoba menamainya sedikit berbeda di ON DUPLICATE KEY UPDATE klausa yang memberi Anda kueri seperti misalnya
MASUKKAN KE am_administrator (namadepan,namabelakang,namapengguna,sandi,email,isSuperUser,dateCreated,dateLastModified) NILAI (:namadepan,:namabelakang,:namapengguna,:sandi,:email,:isSuperUser,:dateCreated,:dateLastModified) AKTIF 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;