PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in

Buenas tardes necesito ayuda, estoy intentando hacer un insert uso mysql y la conexion tipo pdo y me aparece el siguiente error:

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\xampp\htdocs\crud2\datos\CampusDao.php on line 121 

este es la pagina donde aparece el error

    /**  * Metodo que sirve para crear y editar campus  *  * @param      object         $  campus  * @return     boolean  */ public static function crearCampus($  campus) {     if (is_null($  campus->getId_campus())) {         $  query = "INSERT INTO campus (nombre,direccion,estado) VALUES (:nombre,:direccion,:estado)";     } else {         $  query = "UPDATE campus SET nombre=:nombre,direccion=:direccion,estado=:estado WHERE id_campus=:id_campus";     }      self::getConexion();      $  resultado = self::$  cnx->prepare($  query);      $  nombre     = $  campus->getNombre();     $  direccion  = $  campus->getDireccion();     $  estado     = $  campus->getEstado();      $  resultado->bindParam(":nombre", $  nombre);     $  resultado->bindParam(":direccion", $  direccion);     $  resultado->bindParam(":estado", $  estado);    --------esta es la linea del error------- if ($  resultado->execute()) {         return true;     }      return false; } 

}

la tabla campus solo tiene 4 campos que son: id_campus, nombre, direccion y estado. no se cual podria ser el error